Marcin
Miga
Programista. Po
prostu programista.
Temat: [postgreSQL] Ostatni i przed...
Witam!Jako że pSQL jest dla mnie jeszcze nowy, to męczę się z jednym zapytaniem:
SELECT
klient,
rank() OVER w lp,
first_value(sklep) OVER w pierwszy,
first_value(data_transakcji) OVER w pierwszy_data,
nth_value(sklep, 2) OVER w drugi,
nth_value(data_transakcji, 2) OVER w drugi_data
FROM
transakcje t
WINDOW w AS (PARTITION BY klient ORDER BY data_transakcji DESC)
Generalnie chodzi mi o to, by pokazać dla każdego klienta TYLKO ostatni i przedostatni zakup. W jednym rekordzie.
Jako że tabela jest "kosmiczna", więc bez wykorzystania podzapytań - chciałem użyć funkcji grupujących z postgreSQL-a.
Ale coś nie wychodzi, bo dla rekordów z lp=1 drugi jest pusty. No i oczywiście wyświetla tyle rekordów, ile jest w tabeli...
Z góry dzięki