🎯AVG()、SUM()& COUNT():常見的運算公式
►假設我們有的表:DETAIL
NUMBER | NAME | POINT |
10 | 王大明 | 50 |
17 | 王大發 | 70 |
26 | 王小發 | 80 |
26 | 王小發 | 40 |
10 | 王大明 | 25 |
52 | 陳大明 | 90 |
SELECT AVG([POINT]) AS 'AVG',SUM([POINT]) AS 'SUM' FROM [DETAIL] ---AVG、SUM的計算都只會出現總計的, ---除非還有另外設定條件去做計算Rusult
AVG | SUM |
59 | 355 |
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 |
留言
張貼留言