Mysql
 sql >> Base de données >  >> RDS >> Mysql

récupérer 3 lignes chaque jour si la planification est d'un an

Vous pouvez utiliser dense_rank() et arithmétique pour mettre les lignes par groupes de 3 :

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

La question est alors de savoir comment obtenir les dates. D'après votre exemple, cela pourrait être :

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

Cependant, le - 1 dépend de ce que la première ligne est dans le jeu de résultats. Si vous voulez qu'il commence à 365, alors :

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