sql >> Database >  >> RDS >> Mysql

haal elke dag 3 rijen op bij een planning voor 1 jaar

U kunt dense_rank() . gebruiken en rekenkunde om de rijen in groepen van 3 te plaatsen:

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

De vraag is dan hoe de data te krijgen. Op basis van uw voorbeeld zou dit kunnen zijn:

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

Echter, de - 1 hangt af van wat de eerste rij is in de resultatenset. Als je wilt dat het begint bij 365, dan:

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



  1. Een opgeslagen procedure aanroepen in een opgeslagen procedure in MySQL

  2. MySQL selecteer SUM van resultaten met een LIMIT

  3. Sorteren toevoegen aan laravel-query

  4. Hoe db-verbindingen op de server te beheren?