区分 PARTITION BY 和 GROUP BY
在使用聚合查询时,GROUP BY 长期以来一直是整理数据的熟悉选项。然而,PARTITION BY 的出现引入了类似的概念,引发了人们对其与 GROUP BY 关系的疑问。
理解 GROUP BY 的作用
GROUP BY 运行于查询级别,转换整个查询结果。通过根据特定列对行进行分组,它会压缩数据,计算每个组的聚合值(例如计数、平均值、总和)。例如:
select customerId, count(*) as orderCount from Orders group by customerId
PARTITION BY:不同的视角
与 GROUP BY 不同,PARTITION BY 与窗口函数相关联,例如 ROW_NUMBER()。它在窗口计算范围内运行,修改这些函数计算结果的方式。考虑以下示例:
select row_number() over (partition by customerId order by orderId) as OrderNumberForThisCustomer from Orders
需要注意的主要差异
以上是GROUP BY 与 PARTITION BY:聚合查询的主要区别是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!