Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

buscar 3 linhas todos os dias se agendar por 1 ano


Você pode usar dense_rank() e aritmética para colocar as linhas em grupos de 3:
select b.*,
       ceiling(dense_rank() over (order by id) / 3)
from bibles b

A questão é então como obter as datas. Com base no seu exemplo, isso pode ser:
select b.*,
       '2020-02-23' + interval ( ceiling(dense_rank() over (order by id) / 3) - 1) day
from bibles b;

No entanto, o - 1 depende de qual é a primeira linha no conjunto de resultados. Se você quiser que comece em 365, então:
select b.*,
       '2020-02-23' + interval ( ceiling(dense_rank() over (order by id) / 3) - 1) day
from bibles b
where id >= 365;