Google bigquery BIGQUERY-如何按特定日期使用求和函数?
因此,基本上,我想计算EST_浏览量的总和(按日期),它是在Google bigquery BIGQUERY-如何按特定日期使用求和函数?,google-bigquery,Google Bigquery,因此,基本上,我想计算EST_浏览量的总和(按日期),它是在“2018-09-07”和“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-CcF1XGCRASDRr
“2018-09-07”和“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;
请注意,如果您需要更大范围的日期,那么您可能需要一种更干净、更自动化的方式来生成日历表。关于一些选项。我想我理解,您想知道一个视频ID在“2018-09-07”和“2018-09-13”之间的浏览量,如果我错了,请纠正我。因此,如果一个视频ID在2018-09-07和2018-09-08分别被观看了一次和两次,并且在本周的剩余时间内没有被观看,那么你想要得到的总数是3
你应该使用一个子句:
我试过你的方法。但是我仍然没有得到预期的结果行CMS\u ID VIDEO\u ID CHANNEL\u ID TITLE DATE总计12 WKqQSws7CRM UC-CCF1XGCRASDREOI\u zEnQ Con Két Quậy 2018-09-10 12 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két区ậy 2018-09-11 3 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két区ậy 2018-09-07 3 4 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két区ậy 2018-09-09 15 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két区ậy 2018-09-12 16 2 WKqQSws7CRM UC-CcF1XGCRASDRrEOI_zEnQ Con Két区ậy 2018-09-13 2
这里很难看到,我会把结果放在帖子上。你想报告所有的日期,甚至那些没有出现在你的表格中的日期吗?是的,我想报告所有的日期,我的意思是我想有一个表格,它是根据每个视频ID计算的总和
EST_视图(在'2018-09-07'和'2018-09-13'之间累积)@PhucTrinh我更新了我的答案以使用日历表。
SELECT
VIDEO_ID,
SUM(EST_VIEWS)
WHERE
DATE(DATE)
BETWEEN
DATE('2018-09-07') AND DATE('2018-09-13')
GROUP BY
VIDEO_ID