🎯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
COUNT()
SELECT COUNT([NAME]) AS 'COUNT'
FROM [DETAIL]
---COUNT就是計算筆數,一樣只會出現一個COUNT的數字,
---這邊要注意,因為沒有設其他條件,
---所以並不會將名字重複的歸納為群組計算
Rusult
綜合用法
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 |
留言
張貼留言