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

MySQL-gruppe efter datoer mellem

Du kan gruppere på -næsten- alt, hvad du vil. Hvis du kan få noget i en kolonne til at vise, hvad du vil, kan du gruppere på det. Så i kun to perioder kan du simpelthen gruppere på et hvis:

SELECT * FROM table
GROUP BY if(stamp between "2005-07-01" and "2006-02-01", 0, 1)

Hvis du har brug for, at perioderne spænder over længere tider (flere år), kan du bruge period_diff til at skelne mellem:

SELECT * FROM table
GROUP BY floor(period_diff( DATE_FORMAT(stamp, "%Y%m"), "200507") / 6)

Det vil give dig antallet af 6-måneders blokke, der er gået mellem din dato og startperioden i år-måned-format.



  1. JSON koder MySQL-resultater

  2. Foretager MySQL view altid fuld tabelscanning?

  3. Kan Django ORM lave en ORDER BY på en bestemt værdi af en kolonne?

  4. Hvordan laver man en forespørgsel uden store og små bogstaver i Postgresql?