Witam. Ma napisane takie zapytanie, które numeruje mi wiersze w ramach wydzielonych partycji. Partycją jest w tym wypadku kolumna 'g.swcp_id' i w jej ramach ponumerowane są kolejne rekordy.
Zapytanie wygląda następująco:
select g.swcp_id, row_number() over (partition by g.swcp_id order by g.swcp_id) as rekord
from pl_ecp_harmonogramy g;
lub tak:
with cte as
(select g.swcp_id, row_number() over (partition by g.swcp_id order by g.swcp_id) as rekord
from pl_ecp_harmonogramy g)
select * from cte;
Tak czy siak, wynik wygląda tak:
I teraz chciałem usunąć te nadmiarowe rekordy (np. 51 jest dwa razy, 1001 trzy razy) takim zapytaniem:
with cte as
(select g.swcp_id, row_number() over (partition by g.swcp_id order by g.swcp_id) as rekord
from pl_ecp_harmonogramy g)
delete from cte
where row_number > 1;
ale dostaję taki błąd:
Znalazłem taką składnię tego deleta gdzieś na forum, ale to dotyczył T-SQL. Ma ktoś jakiś pomysł jak to można zrobić w Firebirdzie??