sql - 如何在 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 )
解决方案
您可以使用qualify
:
SELECT t.*
FROM `BigQuery.PreviewReport` t
WHERE 1=1
QUALIFY ROW_NUMBER() OVER (PARTITION BY sku ORDER BY ReportstartDate DESC) <= 2;
推荐阅读
- google-bigquery - 使用 Python 查询 GCP Stackdriver 日志
- javascript - 无法连接到 Mongo 数据库
- xml - 输出到 XML 的 SQL 查询
- vtiger - 两个自定义模块之间的 vTiger 关系不保存字段数据
- r - 如何改变大量列的data.table?
- jquery - 未定义 AJAX baseUrl 的 Laravel
- php - 准备好的语句出错
- azure - NGINX 控制器安装在 Azure Kubernetes 服务上
- regex - Mongoose - 使用正则表达式搜索 ObjectId
- python - 循环列表的两种方式 - 区别