跳到主要內容

【SQL】數學運算AVG、SUM & COUNT

🎯AVG()、SUM()& COUNT():常見的運算公式

NOTE:有時候需要某欄位的加總、筆數的計算或平均等,都可以利用運算公式計算出來
假設我們有的表:DETAIL
NUMBER NAME POINT
10 王大明 50
17 王大發 70
26 王小發 80
26 王小發 40
10 王大明 25
52 陳大明 90

AVG() / SUM()
SELECT AVG([POINT]) AS 'AVG',SUM([POINT]) AS 'SUM'
FROM [DETAIL]
---AVG、SUM的計算都只會出現總計的,
---除非還有另外設定條件去做計算
Rusult
AVG SUM
59 355
COUNT()
SELECT COUNT([NAME]) AS 'COUNT'
FROM [DETAIL]
---COUNT就是計算筆數,一樣只會出現一個COUNT的數字,
---這邊要注意,因為沒有設其他條件,
---所以並不會將名字重複的歸納為群組計算
Rusult
COUNT
6
綜合用法
SELECT [NAME], AVG([POINT]) AS 'AVG2',SUM([POINT]) AS 'SUM'
	, COUNT([NUMBER]) AS'COUNT'
---進行運算的欄位都只會出現一個數字,但又需要列出姓名
---故需要增加更嚴謹的條件
FROM [DETAIL]
GROUP BY [NAME]
---GROUP BY就是告知SQL要以什麼為分類依據
---設定[NAME]的話她會將相同名字的做群組計算
ORDER BY AVG([POINT]) DESC
---利用前面提及過的ORDER BY作排序
---因為AVG([POINT])的新欄位名稱「AVG2」是在下這個指令時同時成立,
---所以無法分辨這個欄位,需要再度利用算是作為代表,
---除非撰寫為子查詢或者TEMP表之類的方法讓指令執行前就成立此新欄位
Rusult
NAME AVG SUM COUNT
陳大明 90 90 1
王大發 70 70 1
王小發 60 120 2
王大明 37 75 2

留言

這個網誌中的熱門文章

【TABLEAU】INTRO

🎯 TABLEAU:商業視覺化智慧分析軟體

【SQL】不同來源也無關連可利用UNION

🎯 UNION / UNION ALL:合併多張表的欄位內容。 NOTE: UNION合併但會排除重復筆數;UNION ALL合併且不會排除重複筆數 NOTE2: 不論是哪一種合併,要確定表單的欄位數是一樣的,若欄位數不相同,則要特別指定需要挑選哪幾欄 (挑選後欄位數需一樣)