Google bigquery 在大查询中查找集合id组的第二个最大开始日期

Google bigquery 在大查询中查找集合id组的第二个最大开始日期,google-bigquery,Google Bigquery,我有一个数据如下的表格 我想要每个状态为C的集合的第二高开始日期。 例如 答案应该是 1 2015-05-01 2 2015-05-01 3 2015-06-01 在bigquery中有更简单的方法吗?首先只筛选状态为“C”的记录,然后使用窗口函数按集合id和每个集合内的开始日期对数据进行分区。然后取第二个值 SELECT set_id, NTH_VALUE(start_date, 2) OVER(PARTITION BY set_id ORDER BY start_date DE

我有一个数据如下的表格

我想要每个状态为C的集合的第二高开始日期。 例如 答案应该是

1 2015-05-01
2 2015-05-01
3 2015-06-01


在bigquery中有更简单的方法吗?

首先只筛选状态为“C”的记录,然后使用窗口函数按集合id和每个集合内的开始日期对数据进行分区。然后取第二个值

SELECT 
  set_id, 
  NTH_VALUE(start_date, 2) OVER(PARTITION BY set_id ORDER BY start_date DESC)
FROM table WHERE status = 'C'