środa, 5 czerwca 2013
Postgresql ROWNUM
http://explainextended.com/2009/05/05/postgresql-row-numbers/
select max(e.jednostka) as jednostka,
-- e.id_klienta,
e.modulo,
e.konto,
max(case e.rownum when 1 then e.wlasc end) as wlasc_id,
max(case e.rownum when 1 then e.typ_formatki end) as wlasc_f,
max(case e.rownum when 1 then e.nazwa end) as wlasc_nazwa,
max(case e.rownum when 1 then e.ulica end) as wlasc_ulica,
max(case e.rownum when 1 then e.kod end) as wlasc_kod,
max(case e.rownum when 1 then e.miejscowosc end) as wlasc_miejscowosc,
max(case e.rownum when 2 then e.wlasc end) as ww1_id,
max(case e.rownum when 2 then e.typ_formatki end) as ww1_f,
max(case e.rownum when 2 then e.nazwa end) as ww1_nazwa,
max(case e.rownum when 2 then e.ulica end) as ww1_ulica,
max(case e.rownum when 2 then e.kod end) as ww1_kod,
max(case e.rownum when 2 then e.miejscowosc end) as ww1_miejscowosc,
max(case e.rownum when 3 then e.wlasc end) as ww2_id,
max(case e.rownum when 3 then e.typ_formatki end) as ww2_f,
max(case e.rownum when 3 then e.nazwa end) as ww2_nazwa,
max(case e.rownum when 3 then e.ulica end) as ww2_ulica,
max(case e.rownum when 3 then e.kod end) as ww2_kod,
max(case e.rownum when 3 then e.miejscowosc end) as ww2_miejscowosc,
max(case e.rownum when 4 then e.wlasc end) as ww3_id,
max(case e.rownum when 4 then e.typ_formatki end) as ww3_f,
max(case e.rownum when 4 then e.nazwa end) as ww3_nazwa,
max(case e.rownum when 4 then e.ulica end) as ww3_ulica,
max(case e.rownum when 4 then e.kod end) as ww3_kod,
max(case e.rownum when 4 then e.miejscowosc end) as ww3_miejscowosc,
max(case e.rownum when 5 then e.wlasc end) as ww4_id,
max(case e.rownum when 5 then e.typ_formatki end) as ww4_f,
max(case e.rownum when 5 then e.nazwa end) as ww4_nazwa,
max(case e.rownum when 5 then e.ulica end) as ww4_ulica,
max(case e.rownum when 5 then e.kod end) as ww4_kod,
max(case e.rownum when 5 then e.miejscowosc end) as ww4_miejscowosc
from (
select d.*,
o.nazwa as jednostka,
k.typ_formatki,
case k.typ_formatki
when 'F' then k.nazwa_pelna
when 'G' then k.nazwa_pelna
when 'O' then coalesce(k.nazwisko,'')||' '||coalesce(k.imie_1,'')
END as nazwa,
case when (coalesce(k.adk_ulica,'')||coalesce(k.adk_miejscowosc,'')) <> (coalesce(k.adr_ulica,'')||coalesce(k.adr_miejscowosc,''))
then coalesce(k.adk_ulica,'')||' '||coalesce(k.adk_reszta,'')
else coalesce(k.adr_ulica,'')||' '||coalesce(k.adr_reszta,'')
end as ulica,
case when (coalesce(k.adk_ulica,'')||coalesce(k.adk_miejscowosc,'')) <> (coalesce(k.adr_ulica,'')||coalesce(k.adr_miejscowosc,''))
then coalesce(k.adk_kod_pocztowy,'')
else coalesce(k.adr_kod_pocztowy,'')
end as kod,
case when (coalesce(k.adk_ulica,'')||coalesce(k.adk_miejscowosc,'')) <> (coalesce(k.adr_ulica,'')||coalesce(k.adr_miejscowosc,''))
then coalesce(k.adk_miejscowosc,'')
else coalesce(k.adr_miejscowosc,'')
end as miejscowosc
from (
select rownum,
(w).id_klienta,
(w).modulo,
(w).id_modulo,
(w).konto,
(w).wlasc[ROWNUM]
from (
select w, generate_series(1, array_upper(w.wlasc, 1)) AS ROWNUM
from (
select a.id_klienta,
a.konto,
a.modulo,
a.id_modulo,
a.id_klienta||array(select ta.id_nazwiska
from smok.transakcje_atr ta
where ta.nazwa like 'Wsp__w_a_ciciel'
and ta.id_transakcji = a.id_transakcji
union -- UNIQUE
select ma.id_nazwiska
from smok.modula_atr ma
where ma.nazwa like 'Wsp__w_a_ciciel'
and ma.id_modulo = a.id_modulo) as wlasc
from smok.analityka a
left outer join smok.transakcje t on (t.id_transakcji = a.id_transakcji)
where (-- KONTA DO WLACZENIA
a.konto like '2%'
/*or a.konto like 'xx%'*/
)
and not (-- KONTA DO WYLACZENIA
a.konto like '__9%'
/*or a.konto like 'xx%'*/
)
and (t.status = 4
or (t.status is null and a.data_usuniecia is NULL and a.data_skr is null)
)
/* and a.id_klienta = 68432007
and a.konto like '20064%'
*/ ) as w
) q
) d
join smok.klienci k on (k.id_klienta = d.wlasc)
join smok.modula m on (m.id_modulo = d.id_modulo)
join app.oddzialy o on (o.nr_jednostki = m.id_jednostki)
)e
group by e.id_klienta, e.modulo, e.konto
Subskrybuj:
Komentarze do posta (Atom)
Ginekolog dr n. med. Piotr Siwek
Gabinet ginekologiczny specjalista ginekolog - położnik dr n. med. Piotr Siwek
-
8GB = memory=8589934592 python pgtune \ -i /etc/postgresql/ 9.2 /main/postgresql.conf \ -o postgresql.conf \ --memory=858993...
-
http://www.tcpdump.com/kb/os/linux/lvm-attributes/intro.html LVM Attributes 1 2 3 4 5 (10 votes, average 4.80 out of ...
-
Problem solved ;) Client tool's installer does not provide all the required libraries, so the message: " sawjniapi643r.dll: Can&...
Brak komentarzy:
Prześlij komentarz