R2 SQL 现在支持窗口函数、DISTINCT 和集合操作
R2 SQL 现在支持窗口函数、SELECT DISTINCT、集合操作和更多聚合,使得编写分析查询变得更加容易,而无需在其他地方预处理数据。
R2 SQL 是 Cloudflare 的无服务器分布式 SQL 引擎,用于查询存储在 R2 Data Catalog 中的 Apache Iceberg ↗ 表。
- 窗口函数 —
ROW_NUMBER、RANK、DENSE_RANK、PERCENT_RANK、CUME_DIST、NTILE、LAG、LEAD、FIRST_VALUE、LAST_VALUE、NTH_VALUE,以及带有OVER (...)子句的聚合,包括PARTITION BY和显式窗口范围(frames) - QUALIFY — 根据窗口函数结果过滤行
- DISTINCT —
SELECT DISTINCT、DISTINCT ON (...)以及聚合上的DISTINCT修饰符(例如COUNT(DISTINCT ...)) - 集合操作 —
UNION、UNION ALL、INTERSECT和EXCEPT - 分组扩展 —
GROUPING SETS、ROLLUP和CUBE - 精确聚合 —
MEDIAN、PERCENTILE_CONT、ARRAY_AGG和STRING_AGG
SELECT customer_id, region,
ROW_NUMBER() OVER (PARTITION BY region ORDER BY total_amount DESC) AS rank_in_region
FROM my_namespace.sales_dataSELECT customer_id, region, total_amount
FROM my_namespace.sales_data
QUALIFY ROW_NUMBER() OVER (PARTITION BY region ORDER BY total_amount DESC) <= 3SELECT customer_id FROM my_namespace.sales_data
EXCEPT
SELECT customer_id FROM my_namespace.archived_sales不支持具名 WINDOW 子句 — 请在每个调用点内联 OVER (...) 规范。有关完整语法参考,请参阅 SQL 参考。有关支持的功能和性能指南,请参阅限制与最佳实践。