【发布时间】:2018-01-26 04:21:51
【问题描述】:
我正在使用分析,我想获取每天的计数,并且它会在没有计数的情况下返回 0。我正在使用 MYSQL。
这是我的查询:
SELECT DAY(a.Date)
FROM (
SELECT LAST_DAY(CURDATE()) - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY AS DATE
FROM (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS b
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS c
) a
WHERE a.Date BETWEEN (CURDATE() - INTERVAL 31 DAY) AND CURDATE() GROUP BY a.Date;
我得到了获取 31 天天数的查询,但我无法获取每一天的 count()。
例子:
我有一个包含以下列的装运表:
id = 一些 id
status = '已发送'、'已交付'、'已完成'
date_dispatched = 某个日期
我想统计 31 天内所有处于已发送状态的数据。
预期输出示例:
+-----+--------+
| Day | Count |
+-----+--------+
| 25 | 0 |
| 26 | 0 |
| 27 | 0 |
| 28 | 0 |
| 29 | 12 |
| 30 | 24 |
| 31 | 34 |
| 1 | 24 |
| 2 | 67 |
| 3 | 0 |
| 4 | 0 |
| 5 | 0 |
| 6 | 0 |
| 7 | 0 |
| 8 | 0 |
| 9 | 0 |
| 10 | 0 |
| 11 | 12 |
| 12 | 44 |
| 13 | 67 |
| 14 | 0 |
| 15 | 0 |
| 16 | 0 |
| 17 | 0 |
| 18 | 0 |
| 19 | 0 |
| 20 | 0 |
| 21 | 0 |
| 22 | 0 |
| 23 | 0 |
| 24 | 0 |
+--------------+
【问题讨论】:
-
样本数据和预期输出会有所帮助。
-
你的表结构和预期输出是什么?
标签: mysql