如果您需要对Big Query中某些列进行滚动计数,可以使用以下代码示例:
SELECT date, city, COUNT(*) OVER (PARTITION BY city ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) as rolling_count
FROM my_table
这将返回date、city和city的滚动计数,其中滚动计数是过去7天内每个城市出现的次数。注意,这里使用了ROW BETWEEN子句来指定要计算滚动计数的行的范围。
如果您需要计算多个滚动计数,可以使用以下示例:
SELECT date, city, COUNT(*) OVER (PARTITION BY city ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) as rolling_count_7,
COUNT(*) OVER (PARTITION BY city ORDER BY date ROWS BETWEEN 13 PRECEDING AND CURRENT ROW) as rolling_count_14
FROM my_table
这将返回数据、城市、过去7天和过去14天中每个城市的滚动计数。
请注意,此方法在计算大型数据集时可能会有性能问题,因为它需要在每个行上执行聚合计算。
下一篇:BigQuery多条件全连接