Můžete použít dense_rank()
a aritmetika pro umístění řádků do skupin po 3:
select b.*,
ceiling(dense_rank() over (order by id) / 3)
from bibles b
Otázkou pak je, jak data získat. Na základě vašeho příkladu to může být:
select b.*,
'2020-02-23' + interval ( ceiling(dense_rank() over (order by id) / 3) - 1) day
from bibles b;
Nicméně - 1
záleží na tom, jaký je první řádek ve výsledné sadě. Pokud chcete, aby to začínalo na 365, pak:
select b.*,
'2020-02-23' + interval ( ceiling(dense_rank() over (order by id) / 3) - 1) day
from bibles b
where id >= 365;