BigQuery支持基于前一行的窗口函数,这些函数用于在查询中计算行与先前行之间的差异。例如,可用于计算某个时间范围内每日销售额的变化。
下面是使用Lag函数计算前一行值并使用Over函数定义窗口的SQL示例代码:
SELECT date,
revenue,
LAG(revenue, 1) OVER (ORDER BY date) AS prev_revenue,
revenue - LAG(revenue, 1) OVER (ORDER BY date) AS revenue_difference
FROM sales
WHERE date BETWEEN '2022-01-01' AND '2022-01-31'
在上述代码中,LAG函数用于获取每日销售额的前一行值。此函数与窗口函数OVER结合使用,以指定要在查询中计算的行集。
执行此查询将返回一个结果集,其中每一行都包含日期、销售额、前一行销售额和销售额差异。