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

hent 3 rækker hver dag, hvis du planlægger for 1 år

Du kan bruge dense_rank() og aritmetik for at sætte rækkerne i grupper af 3:

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

Spørgsmålet er så, hvordan man får datoerne. Baseret på dit eksempel kan dette være:

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

Men - 1 afhænger af, hvad den første række er i resultatsættet. Hvis du vil have det til at starte ved 365, så:

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



  1. Postgresql vs. MySQL:hvordan sammenligner deres datastørrelser med hinanden?

  2. SQL-forespørgsel med flere værdier i én celle

  3. Sådan konverteres en streng til en numerisk værdi i PostgreSQL

  4. Vedligeholdelse af indekseret visning i udførelsesplaner