Ahoj,
pristupy ktere znam (muze jich byt vic a/nebo existovat lepsi:
1) subselect ktery vrati poradi podle ktereho pak muzes filtrovat:
DELETE
FROM
my_table x
WHERE (
SELECT
COUNT(*)
FROM
my_table
WHERE
grp = a.grp
AND
ts <= a.ts
) <= 5
SELECT * FROM (
SELECT *,
rank() OVER (
PARTITION BY grp
ORDER BY ts DESC
)
FROM my_table
) rank_filter
WHERE RANK > 5
3) me oblibene - nedelej to a delej to pri vkladani zaznamu ktere vzdy budes nasledovat jednoduchym DELETE ktere vymaze jen ty zaznamy pro grp kterou zrovna upravujes.
Snad neco z toho pomuze.