[英]SQL: Group by multiple columns
通過創建幾個臨時表並將它們聯接到數據庫中,我創建了一個與此表類似的表:
customerid Segment Sales Country
1 1 $3 US
2 2 $4 CAN
3 3 $5 US
4 5 $6 CAN
5 4 $5 US
6 6 $1 CAN
7 7 $4 US
8 3 $2 CAN
9 2 $2 US
10 1 $1 CAN
11 9 $5 US
12 10 $2 CAN
13 1 $4 US
14 3 $2 CAN
15 4 $1 US
我要實現的是:
Country Segment Count of customer by segment sum of sales by segment
CAN 1 70 $3,000
CAN 2 30 $3,000
CAN 3 20 $3,000
CAN 4 110 $3,000
CAN 5 90 $3,000
CAN 6 10 $3,000
CAN 7 60 $3,000
CAN 8 5000 $3,000
CAN 9 2527.857143 $3,000
CAN 10 2939.880952 $3,000
US 1 3351.904762 $3,000
US 2 3763.928571 $3,000
US 3 4175.952381 $3,000
US 4 4587.97619 $3,000
US 5 5000 $3,000
US 6 5412.02381 $3,000
US 7 5824.047619 $3,000
US 8 6236.071429 $3,000
US 9 6648.095238 $3,000
US 10 7060.119048 $3,000
我該如何實現?
如果您想保留原始表中的所有記錄並同時顯示一些匯總,則分區將很有用。 然而,從你向我們展示了它看起來像你想要的結果集,其中每個Country
/ Segment
出現一次。 在這種情況下,一個簡單的GROUP BY
應該可以工作:
SELECT Country, Segment, COUNT(*) AS `Count of customer by segment`,
SUM(Sales) AS `sum of sales by segment`
FROM yourTable
GROUP BY Country, Segment
ORDER BY Country, Segment
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.