Google 大查询中每天的点击次数

Hits per day in Google Big Query

我正在使用 Google Big Query 查找每天的点击量。这是我的查询,

SELECT COUNT(*) AS Key, 
       DATE(EventDateUtc) AS Value 
FROM    [myDataSet.myTable] 
WHERE    ..... 
GROUP BY Value 
ORDER BY Value DESC 
LIMIT 1000;

这工作正常,但它忽略了 0 次点击的日期。我想包括这个。我无法在 Google Big Query 中创建临时文件 table。如何解决这个问题。

测试得到错误 Field 'day' not found.

SELECT COUNT(*) AS Key, 
       DATE(t.day) AS Value  from (
       select date(date_add(day, i, "DAY")) day
from  (select '2015-05-01 00:00' day) a 
cross join
(select 
   position(
     split(
       rpad('', datediff(CURRENT_TIMESTAMP(),'2015-05-01 00:00')*2, 'a,'))) i 
 from (select NULL)) b

       ) d
left join [sample_data.requests] t on d.day = t.day
GROUP BY Value 
ORDER BY Value DESC 
LIMIT 1000;

您可以查询 table 中存在的数据,查询无法猜测您的 table 中缺少哪些日期。这个问题你需要用你的编程语言来处理,或者你可以 .

如果您知道查询中的日期范围,则可以生成天数:

select date(date_add(day, i, "DAY")) day
from  (select '2015-01-01' day) a 
cross join
(select 
   position(
     split(
       rpad('', datediff('2015-01-15','2015-01-01')*2, 'a,'))) i 
 from (select NULL)) b;

然后您可以将此结果加入您的查询 table:

SELECT COUNT(*) AS Key, 
       DATE(t.day) AS Value  from (...the.above.query.pasted.here...) d
left join [myDataSet.myTable] t on d.day = t.day
WHERE    ..... 
GROUP BY Value 
ORDER BY Value DESC 
LIMIT 1000;