1. 需求
任何管理系统都有统计图, 像这样的:
- 这里需要数据:
- 横坐标名
- 纵坐标数值
案例
需求: 需要统计近七天的注册用户数量
前端需要的数据格式:
[
{
"日期":"2019-10-10",
"注册人数":1
},
{
"日期":"2019-10-11",
"注册人数":1
},
{
"日期":"2019-10-12",
"注册人数":1
}
...
]
有人可能会说,
GROUP BY
不就完了?
使用GROUP BY
, 没有数据的日期是不会查出来的.
思路
- 拿到时间范围内所有日期
- 数据表进行
GROUP BY
查询,LEFT JOIN
日期表
吐槽一下…PgSql很容易就能拿到了, MySQL比较繁琐…
解决方案
最终在Stack Overflow
上找到较优解法:
select a.Date
from (
select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a