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

mysql datoliste med tæller, selvom ingen data på specifik dato

Forudsat dit postid s er sammenhængende i din tabel, så denne forespørgsel:

SELECT DATE_FORMAT(b.date, '%Y-%m-%d') date, COUNT(c.postid)FROM( SELECT (SELECT MAX(dato) FROM ex) + INTERVAL 3 DAY - INTERVAL a.postid DAG SOM dato FRA ex a) BLEFT JOIN ex c ON c.date =b.dateGROUP BY b.dateORDER BY b.date 

producerer:

dato COUNT(c.postid)2012-01-01 22012-01-02 22012-01-03 02012-01-04 22012-01-05 12012-01-06 02012-01-07 0

Se http://sqlfiddle.com/#!2/2cf8d/2

Hvis dit postid s ikke er sammenhængende, så kan du bruge et ids tabel over sammenhængende id'er:

SELECT DATE_FORMAT(b.date, '%Y-%m-%d') date, COUNT(c.postid)FROM( SELECT (SELECT MAX(dato) FROM ex) + INTERVAL 3 DAY - INTERVAL a.id DAG SOM dato FRA ids a) BLEFT JOIN ex c ON c.date =b.dateGROUP BY b.dateORDER BY b.date DESCLIMIT 7 

Se http://sqlfiddle.com/#!2/13035/1



  1. En introduktion til databasehøj tilgængelighed for MySQL og MariaDB

  2. Oracle:Importer CSV-fil

  3. Hvordan bruger man dynamiske kolonnenavne i en UPDATE- eller SELECT-sætning i en funktion?

  4. Vil du gemme almindelig forespørgsel som kolonne?