Mysql
 sql >> Database >  >> RDS >> Mysql

recupera 3 righe ogni giorno se la pianificazione per 1 anno

Puoi usare dense_rank() e aritmetica per mettere le righe in gruppi di 3:

select b.*,
       ceiling(dense_rank() over (order by id) / 3)
from bibles b

La domanda è quindi come ottenere le date. Sulla base del tuo esempio, questo potrebbe essere:

select b.*,
       '2020-02-23' + interval ( ceiling(dense_rank() over (order by id) / 3) - 1) day
from bibles b;

Tuttavia, il - 1 dipende da quale sia la prima riga nel set di risultati. Se vuoi che inizi a 365, allora:

select b.*,
       '2020-02-23' + interval ( ceiling(dense_rank() over (order by id) / 3) - 1) day
from bibles b
where id >= 365;