我有一张包含如下数据的表格
我想要每组的第二个最高开始日期,其中状态为 C。例如,答案应该是
1 2015-05-01
2 2015-05-01
3 2015-06-01
在 bigquery 中是否有更简单的方法来执行此操作?
首先仅过滤 status = 'C' 的记录,然后使用窗口函数按 set_id 对数据进行分区,并按每个集合内的 start_date 进行排序。然后取第二个值。
SELECT
set_id,
NTH_VALUE(start_date, 2) OVER(PARTITION BY set_id ORDER BY start_date DESC)
FROM table WHERE status = 'C'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1829 次 |
最近记录: |