【发布时间】:2016-07-20 04:53:00
【问题描述】:
有一个表格,里面有这样的数据:
-----------------------
| id | date |
-----------------------
| 1 | 2016-07-11 |
| 2 | 2016-07-11 |
| 3 | 2016-07-15 |
| 4 | 2016-07-15 |
| 5 | 2016-07-15 |
| 6 | 2016-07-16 |
| 7 | 2016-07-19 |
| 8 | 2016-07-20 |
-----------------------
我想获取日期范围(所有日期)和每个日期的 ID 计数,当不存在记录时返回 0。
如果在 2016 年 7 月 10 日到 2016 年 7 月 20 日之间运行,结果应如下所示:
--------------------------
| date | count(id) |
--------------------------
| 2016-07-10 | 0 |
| 2016-07-11 | 2 |
| 2016-07-12 | 0 |
| 2016-07-13 | 0 |
| 2016-07-14 | 0 |
| 2016-07-15 | 3 |
| 2016-07-16 | 1 |
| 2016-07-17 | 0 |
| 2016-07-18 | 0 |
| 2016-07-19 | 1 |
| 2016-07-20 | 1 |
--------------------------
我找到了getting a date range 的解决方案,但不知道如何让它计算表格中这些日期存在的 ID。
谢谢!
【问题讨论】:
-
您可以使用聚合函数“计数”,通过您的选择查询来计算特定日期的记录数。
-
创建永久的每日或每月Helper Tables 一次并经常使用它们。可以更快地加入,每次都将它们快速组合在一起。
-
德鲁,你确定吗?