R2 SQL 现在支持 UNION、INTERSECT、EXCEPT 和 SELECT DISTINCT
R2 SQL 现在支持集合操作(UNION、INTERSECT、EXCEPT)和 SELECT DISTINCT,从而扩展了您可直接对 R2 Data Catalog 中 Apache Iceberg ↗ 表运行的分析查询范围。
组合多个 SELECT 语句的结果:
UNION— 返回两个查询的所有行,并移除重复项。UNION ALL— 返回两个查询的所有行,保留重复项。INTERSECT— 仅返回在两个查询中都出现的行。EXCEPT— 返回存在于第一个查询中但不存在于第二个查询中的行。
-- Find zones that had either firewall blocks OR high-risk requests
SELECT zone_id FROM my_namespace.firewall_events WHERE action = 'block'
UNION
SELECT zone_id FROM my_namespace.http_requests WHERE risk_score > 0.8-- Find zones with both firewall blocks AND high traffic
SELECT zone_id FROM my_namespace.firewall_events WHERE action = 'block'
INTERSECT
SELECT zone_id FROM my_namespace.http_requests
GROUP BY zone_id
HAVING COUNT(*) > 10000-- Find enterprise zones that have not been compacted
SELECT zone_id FROM my_namespace.zones WHERE plan = 'enterprise'
EXCEPT
SELECT zone_id FROM my_namespace.compaction_history从查询结果中消除重复行:
SELECT DISTINCT region, department
FROM my_namespace.sales_data
WHERE total_amount > 1000
ORDER BY region, department
LIMIT 100对于可以接受近似结果的大型数据集,approx_distinct() 仍是计算唯一值数量的更快替代方法。