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

4 sty 2013

Zamiana przecinka na spacje przy użyciu regexp_replace

select
  a_title,
  regexp_replace(a_title, ' +', ' ', 'g')
from articles
where
  a_status = 't'
  and a_title ~ ' '
update articles
set
  a_title = regexp_replace(a_title, ',', ' ')
where
  a_status = 't'
  and a_title ~ ','
update articles
set
  a_title = regexp_replace(a_title, ' +', ' ', 'g')
where
  a_status = 't'
  and a_title ~ ' '