google-bigquery - BIGQUERY - 如何按特定日期使用求和函数?
问题描述
所以基本上,我想按 DATE 计算 EST_VIEWS 的 SUM,它是"2018-09-07" and "2018-09-13"
. 我该怎么做?
Row CMS_ID VIDEO_ID CHANNEL_ID TITLE EST_VIEWS DATE
1 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 1 2018-09-10
2 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 3 2018-09-07
3 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 1 2018-09-09
4 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 3 2018-09-11
5 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 2 2018-09-13
6 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 1 2018-09-12
7 2 V133h8Rn8W0 UC-CcF1XGCRASDRrEOI_zEnQ Michael Jackson Nhí - Châu Phát Luân Ngôi Sao Nhí Trại Hè Trường Anh Ngữ RES 2018 1 2018-09-11
8 2 V133h8Rn8W0 UC-CcF1XGCRASDRrEOI_zEnQ Michael Jackson Nhí - Châu Phát Luân Ngôi Sao Nhí Trại Hè Trường Anh Ngữ RES 2018 1 2018-09-12
结果:
Row CMS_ID VIDEO_ID CHANNEL_ID TITLE DATE total
1 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 2018-09-10 1
2 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 2018-09-11 3
3 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 2018-09-07 3
4 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 2018-09-09 1
5 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 2018-09-12 1
6 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két Quậy 2018-09-13 2
解决方案
由于您希望查看给定范围内的所有日期,即使您的源表可能没有这些日期的任何条目,我们也可以在这种情况下使用日历表。鉴于您想要的范围很小,以下应该就足够了:
WITH dates AS (
SELECT DATE("2018-09-07") AS DATE UNION ALL
SELECT DATE("2018-09-08") UNION ALL
SELECT DATE("2018-09-09") UNION ALL
SELECT DATE("2018-09-10") UNION ALL
SELECT DATE("2018-09-11") UNION ALL
SELECT DATE("2018-09-12") UNION ALL
SELECT DATE("2018-09-13")
)
SELECT
t1.DATE,
SUM(t2.EST_VIEWS) OVER (ORDER BY t1.DATE) AS total
FROM dates t1
LEFT JOIN yourTable t2
ON t1.DATE = t2.DATE
GROUP BY
t1.DATE;
请注意,如果您需要更大范围的日期,那么您可能需要一种更简洁、更自动化的方式来生成日历表。 有关一些选项,请参阅此 SO question。
推荐阅读
- python - 如何在python中选择文件名的最后一个字符
- python - 创建连接公共点的线
- javascript - 如何在下拉列表中更改 [(value)] 的值在 Angular 2 中
- javascript - 在 React 中根据用户偏好动态更改 react-slick 滑块点图标
- powershell - 在不关闭 FileStream 的情况下更新 LastWriteTime
- javascript - 如何显示弹出窗口
- javascript - 更新云功能中的 Firestore
- ios - Alamofire 在发送请求时拆分嵌套对象
- java - 如何根据 Firebase 中检索到的数据从另一个表中获取数据
- rust - Rust 在迭代器和迭代器之间共享引用