sql >> Databáze >  >> RDS >> Mysql

Jak seskupit počet řádků za den také ve dnech bez řádků v MySQL?

Abych se vypořádal s daty s 0 odpovídajícími záznamy, mou běžnou praxí je použít kalendářovou tabulku.

Vytvořte například tabulku s jedním polem nazvaným calendar_date a vyplňte jej každým datem od 1st Jan 2000 do 31st Dec 2070 nebo nějaký jiný rozsah, který vyhovuje vašim účelům vytváření přehledů.

Pak použijte něco jako...

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

Tato tabulka může mít mnoho dalších využití, jako je označení státních svátků, začátku týdnů a měsíců. Obezřetným používáním příznaků a indexů z toho můžete hodně vytěžit.



  1. Oracle 11g:Odklopte několik sloupců a zadejte název sloupce

  2. Skript importu CSV do Mysql, aby odpovídal polím

  3. Zásady oprav

  4. Django a paralelní zpracování: