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

seznam datumů mysql s počtem, i když k určitému datu nejsou žádná data

Za předpokladu, že vaše postid s jsou ve vaší tabulce souvislé, pak tento dotaz:

SELECT
  DATE_FORMAT(b.date, '%Y-%m-%d') date,
  COUNT(c.postid)
FROM
(
  SELECT
    (SELECT MAX(date) FROM ex) + INTERVAL 3 DAY - INTERVAL a.postid DAY AS date
  FROM
    ex a
) b
LEFT JOIN
  ex c ON c.date = b.date
GROUP BY
  b.date
ORDER BY
  b.date

produkuje:

date    COUNT(c.postid)
2012-01-01  2
2012-01-02  2
2012-01-03  0
2012-01-04  2
2012-01-05  1
2012-01-06  0
2012-01-07  0

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

Pokud váš postid s nejsou souvislé, pak můžete použít ids tabulka souvislých ID:

SELECT
  DATE_FORMAT(b.date, '%Y-%m-%d') date,
  COUNT(c.postid)
FROM
(
  SELECT
    (SELECT MAX(date) FROM ex) + INTERVAL 3 DAY - INTERVAL a.id DAY AS date
  FROM
    ids a
) b
LEFT JOIN
  ex c ON c.date = b.date
GROUP BY
  b.date
ORDER BY
  b.date DESC
LIMIT 7

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



  1. dotaz mysql ZOBRAZIT SLOUPCE Z tabulky jako 'název_sloupce':otázky

  2. Nakonfigurujte úlohy SQL na serveru SQL pomocí T-SQL

  3. Jak Cosh() funguje v PostgreSQL

  4. Jak mohu OPTIMALIZOVAT 9GB tabulku, pokud je na disku velmi málo volného místa?