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

Hvordan grupperes antallet af rækker om dagen også i dage uden rækker i MySQL?

For at håndtere datoer med 0 tilsvarende poster, er min normale praksis at bruge en kalendertabel til at deltage på.

Opret f.eks. en tabel med et felt kaldet calendar_date og udfyld den med hver dato fra 1st Jan 2000 til 31st Dec 2070 , eller et andet område, der passer til dine rapporteringsformål.

Brug derefter noget som...

SELECT
  calendar.calendar_date,
  COUNT(*)
FROM
  calendar
LEFT JOIN
  yourData
    ON  yourData.timeStamp >= calendar.calendar_date
    AND yourData.timeStamp <  calendar.calendar_date + 1
WHERE
      calendar.calendar_date >= '01 Jan 2012'
  AND calendar.calendar_date <  '04 Jan 2012'
GROUP BY
  calendar.calendar_date

Denne tabel kan have mange ekstra anvendelser, såsom markering af helligdage, begyndelse af uger og måneder. Med forsigtig brug af flag og indekser kan du få meget ud af det.



  1. Hvordan eksporterer man alle data fra tabel til et indsætteligt sql-format?

  2. Tilfældig rækkefølge med Entity Framework og MySQL

  3. hvordan man får navne på partitioner i Oracle, mens jeg indtaster en dato

  4. Sådan konverteres enkeltrækkedata til en enkelt kolonne i Oracle