在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;
以上查詢將返回每個銷售人員的每個產品的銷售數量,并在每個分組中計算出總銷售量。