mysql - sql 显示计数查询的所有日期

标签 mysql

我对我的 mysql 查询有疑问。 我想统计每天的记录数。 这行得通,但我还想查看计数为 0 的日期。 总数为 0 的日期不在结果集中。 我怎么做? 这是我当前的查询:

SELECT COUNT(id) AS total_per_day, 
DATE_FORMAT(reg_date, "%Y-%m-%d") as my_date 
FROM my_table GROUP BY my_date

预先感谢您的回复。

最佳答案

试试这个查询-

-- Create this temp. table firstly!
-- CREATE TABLE days(d int);
-- INSERT INTO days(d) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);

SELECT t.day, COUNT(mt.id) total_per_day FROM (
  SELECT
    min_date + INTERVAL t1.d + t2.d * 10 DAY day,
    min_date,
    max_date
  FROM days t1, days t2,
    (SELECT MIN(DATE(reg_date)) min_date, MAX(DATE(reg_date)) max_date FROM my_table) t3
  HAVING day BETWEEN min_date AND max_date) t
  LEFT JOIN my_table mt
    ON t.day = DATE(mt.reg_date)
GROUP BY t.day

关于mysql - sql 显示计数查询的所有日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9989375/

相关文章:

php - 对行中的每个数字进行一次查询

mysql - 如何解决 MySQL 错误 "You can' t specify target table X for update in FROM clause”?

mysql 按两个 unixtime 列组合排序

mysql - 如何将现有数据库从 SQL Server 导入 MySQL?

Mysql:使用同一表中的计数更新表

python - 如何将 MySQL 与 python 同步?

php - 如何使用mysql强制转换json?

mysql - 为什么mysql改变我的代码 View ?

使用 phpMYAdmin 和 Joomla3 的 mySQL 数据库

MySQL - 使用 COALESCE 与 DATE_ADD 和 DATE_SUB 获取下一个/上一个记录