आप dense_rank()
. का उपयोग कर सकते हैं और 3 के समूहों में पंक्तियों को रखने के लिए अंकगणित:
select b.*,
ceiling(dense_rank() over (order by id) / 3)
from bibles b
सवाल यह है कि तिथियां कैसे प्राप्त करें। आपके उदाहरण के आधार पर, यह हो सकता है:
select b.*,
'2020-02-23' + interval ( ceiling(dense_rank() over (order by id) / 3) - 1) day
from bibles b;
हालांकि, - 1
परिणाम सेट में पहली पंक्ति क्या है इस पर निर्भर करता है। अगर आप चाहते हैं कि यह 365 से शुरू हो, तो:
select b.*,
'2020-02-23' + interval ( ceiling(dense_rank() over (order by id) / 3) - 1) day
from bibles b
where id >= 365;