我有一個包含以下列的表:ClientID,OrderID,ProductID,數量,每個ProductID每個OrderID只出現一次,每個OrderID只對應一個ClientID。按列分組的聚合函數
樣本數據:
ClientID OrderID ProductID Quantity
1 100 25 10
1 100 30 20
1 101 27 10
1 101 30 10
1 102 27 30
2 103 27 10
2 104 15 10
我需要做到以下幾點:同時通過客戶端ID和產品ID分組我需要應用聚合函數爲其他列,所以結果集包含每個客戶端ID最低的OrderID以及每個ClientID的每個ProductID的Quantity列的總和。結果集的行數等於每個ClientID中不同ProductID的數量,並且每行的OrderID =每個ClientID的最低OrderID,而不考慮ProductID。
所需的結果:
ClientID OrderID ProductID Quantity
1 100 25 10
1 100 30 30
1 100 27 40
2 103 27 10
2 103 15 10
我試圖實現這一目標使用以下查詢:
select ClientID, min(OrderID) as OrderID, ProductID, sum(Quantity) as Quantity
from table
group by ClientID, ProductID
但由於分組,結果集包含每個客戶端ID多OrderIDs:
當前結果:
ClientID OrderID ProductID Quantity
1 100 25 10
1 100 30 30
1 101 27 40
2 103 27 10
2 104 15 10
請注意第三行和第四行的OrderID在兩個結果中的差異。
感謝。我嘗試了第二種選擇,因爲它只使用一條select語句,它的作用就像一個魅力。 – ovidiufelixb