【发布时间】:2020-02-12 18:47:27
【问题描述】:
鉴于此查询...
select
sum(count) as quotes,
date
from (
select
1 as count,
DATE_FORMAT(CONVERT_TZ(createdAt, 'UTC', 'US/Pacific'), "%Y-%m-%d") as date
from quotes
where deletedAt IS NULL
) q1
group by date
order by date;
我得到以下结果(仅显示 2020-02 年的结果,但实际结果会追溯到几年前)...
注意:2020-02-02 收到 0 个报价,并且丢失了
+-------+------------+
| count | date |
+-------+------------+
| 1 | 2020-02-01 |
| 2 | 2020-02-03 |
| 1 | 2020-02-04 |
| 1 | 2020-02-05 |
| 1 | 2020-02-06 |
| 1 | 2020-02-07 |
| 3 | 2020-02-08 |
| 3 | 2020-02-09 |
| 3 | 2020-02-10 |
| 1 | 2020-02-11 |
+-------+------------+
如何将查询修改为...
- 填写缺失的日期(例如本例中的 2020-02-02)
- 添加 ytdCount 列,这是按年滚动计数
让输出是这样的……
add the ytdCount column
\/
+-------+----------+------------+
| count | ytdCount | date |
+-------+----------+------------+
| 1 | 1 | 2020-02-01 |
| 0 | 1 | 2020-02-02 | <- was missing from previous example
| 2 | 3 | 2020-02-03 |
| 1 | 4 | 2020-02-04 |
| 1 | 5 | 2020-02-05 |
| 1 | 6 | 2020-02-06 |
| 1 | 7 | 2020-02-07 |
| 3 | 10 | 2020-02-08 |
| 3 | 13 | 2020-02-09 |
| 3 | 16 | 2020-02-10 |
| 1 | 17 | 2020-02-11 |
+-------+----------+------------+
参考
- 我找到了MYSQL to calculate YTD,它显示了如果我从一个简单的表中选择如何执行此操作,但由于我的“表”实际上是一个选择语句,我不确定如何将示例转换为我的用例。
- 我找到了get all dates in the current month,它显示了如何生成一个月中的所有日期,但我需要特定年份的所有日期。
【问题讨论】:
-
不是答案,但请查看日期脚手架以填充缺失的日期。 YTD 的一种可能性:窗口计算。
-
谢谢@ChrisG 我做了一个快速搜索,但没有找到任何对搜索词“日期脚手架 mysql”有用的东西。如果您知道任何好的参考资料,我将不胜感激一两个链接
-
我的糟糕,显然日期脚手架是 Tableau 特有的东西。试试这个链接:stackoverflow.com/questions/3538858/…
标签: mysql