Anda dapat menggunakan dense_rank()
dan aritmatika untuk menempatkan baris dalam kelompok 3:
select b.*,
ceiling(dense_rank() over (order by id) / 3)
from bibles b
Pertanyaannya kemudian bagaimana cara mendapatkan tanggalnya. Berdasarkan contoh Anda, ini mungkin:
select b.*,
'2020-02-23' + interval ( ceiling(dense_rank() over (order by id) / 3) - 1) day
from bibles b;
Namun, - 1
tergantung pada apa baris pertama di set hasil. Jika Anda ingin memulai dari 365, maka:
select b.*,
'2020-02-23' + interval ( ceiling(dense_rank() over (order by id) / 3) - 1) day
from bibles b
where id >= 365;