假设我们有一个看起来像这样的表:
我希望能够看到在period1和period2期间有多少URL记录。
其中句号1是"日期> ' 2016年1月1日'和日期< ' 2017年1月1日' "
和期间2是"日期> ' 2014年1月1日'和日期< ' 2015年1月1日' "
以下是我期望的可视化:
我可以使用以下查询在一个句点内轻松完成此操作:
SELECT URL, COUNT(URL) as Period1
FROM table WHERE date < '2017-01-01'
AND date > '2016-01-01' GROUP BY URL
但是如何在Period2中添加第二列?
任何想法都会非常感激。对不起,如果我解释不正确。
答案 0 :(得分:2)
只需更改以下查询中的日期,它就会计算每期点击次数
SELECT [URL]
,SUM(CASE WHEN (date >= '12/22/2015' And date <='12/23/2015') THEN 1 Else 0 END)
,SUM(CASE WHEN (date > '12/30/2015' And date < '12/31/2015') THEN 1 Else 0 END)
FROM LogFilesv2_Dataset.DE_Visits
Group by URL
答案 1 :(得分:1)
for BigQuery Standard SQL
#standardSQL
SELECT
URL AS uri,
COUNTIF(date BETWEEN '2016-01-01' AND '2016-12-31') AS Period1,
COUNTIF(date BETWEEN '2014-01-01' AND '2014-12-31') AS Period2
FROM `LogFilesv2_Dataset.DE_Visits`
GROUP BY URL
答案 2 :(得分:0)
不确定您使用的是哪个数据库。但是对于Oracle数据库,您可以尝试使用这样的标量子查询。
select url,(select count(*) from test where url=t.url and date_col <= sysdate and date_col > sysdate-20) period1,(select count(*) from test where url=t.url and date_col <= sysdate and date_col > sysdate-40) period2
来自test t group by url;
您可以在上面的查询中正确替换日期范围。
提供SQL脚本来创建表并填充数据总是有帮助的。