首页 > 解决方案 > 如何在 google BigQuery 中获取每个键的最后两行?

问题描述

我需要检索每个 SKU 的最后两行,我该如何实现?通过使用以下查询仅获取每个 SKU 的最后一行。

SELECT
  agg.table.*
FROM (
  SELECT
    sku,
    ARRAY_AGG(STRUCT(table)
    ORDER BY
      ReportstartDate DESC)[SAFE_OFFSET(0)] agg
  FROM
    `BigQuery.PreviewReport` table
  GROUP BY
    sku ) 

标签: sqlgoogle-bigquery

解决方案


您可以使用qualify

SELECT t.*
FROM `BigQuery.PreviewReport` t
WHERE 1=1
QUALIFY ROW_NUMBER() OVER (PARTITION BY sku ORDER BY ReportstartDate DESC) <= 2;

推荐阅读