在SQL中,PARTITION BY是一种用于分组数据的子句。它通常与窗口函数一起使用,用于对每个分组应用函数,并根据指定的列对数据进行分区。
语法如下:
SELECT column1, column2, ..., function(column)
OVER (PARTITION BY partition_column)
FROM table_name;
在上述语法中,PARTITION BY后面的partition_column指定了用于分组数据的列。每个分组都会有自己的计算结果。
例如,假设我们有一个包含销售数据的表sales,其中包含列:salesperson、product和quantity。我们想要计算每个销售人员的产品销售总量。可以使用PARTITION BY将数据按销售人员分组,并对每个分组应用SUM函数来计算销售总量。
示例查询:
SELECT salesperson, product, quantity,
SUM(quantity) OVER (PARTITION BY salesperson) as total_sales
FROM sales;
以上查询将返回每个销售人员的每个产品的销售数量,并在每个分组中计算出总销售量。