24 Lut 2016

Obliczenie statystyk przy wykorzystaniu regexp_replace

SELECT
regexp_replace( url ,E'^http:\/\/.*\/(.*)-(\\d+).html(\\?)?(.*)?', E'\\1') AS t_name,
regexp_replace( url ,E'^.*-(\\d+).html(\\?)?(.*)?', E'\\1')::INTEGER AS t_id,
COUNT(*) AS t_cnt
FROM unnest(
ARRAY[
'http://kody.wig.pl/ustawienie_wartosci_pol_input_w_formularzu_strony-15.html',
'http://kody.wig.pl/ustawienie_wartosci_pol_input_w_formularzu_strony-15.html?
action=test&value1=118-115&value2=119-116'

]
) AS t(url)
GROUP BY t_name, t_id

Wynik:

"ustawienie_wartosci_pol_input_w_formularzu_strony";15;2
13 Lut 2015

Wyszukiwanie punktów po odległości przy użyciu funkcji length

Przykładowy sql:

SELECT *, LENGTH(p_path::path) AS distance FROM (SELECT *, p.p_name, '((54.175540523964, 15.527111972064), ('||p_lat::text||','||p_lng::text||'))' AS p_path
FROM
  points p
WHERE
 p.p_status (p.m_id=5
OR
 (51.175540 < p_lat AND p_lat < 57.17554 AND 12.52711 < p_lng AND p_lng < 18.52711))
ORDER BY
  p.m_id=5 DESC NULLS LAST) t
ORDER BY distance ASC LIMIT 6