※ 引述《dcplay01 (dcplay)》之銘言:
: ※ 引述《EAFV ()》之銘言:
: : 使用COUNT(),AVG(),SUM()等函數的時候
: : 要先用GROUP BY劃分出群組來計算
: 請問是這樣嗎???
: UPDATE course SET MT = SUM( M1 + M2 + M3 + M4 )/4 WHERE stu_id = '93101163'
: GROUP BY 1
: 我後面忘記..GROUP BY該怎麼用了...麻煩大大幫忙 感謝^^
看你的例子似乎是要算這個學生的四個欄位的平均值,那就不用 SUM
SET MT = (M1 + M2 + M3 +M4)/4 就行了。
前提是一個學生只有一筆資料,而 MT, M1, M2, M3, M4 是五個不同的欄位
SUM() 是用來把好幾筆資料的同一個欄位加總用的,GROUP BY 是用來界定要
依據什麼欄位把相對應的資料加總,譬如一個學生有好幾筆成績,要算加總
學號 分數
==================
0001 80
0002 75
0001 78
0001 83
0002 68
則用 SELECT 學號, SUM(分數) GROUP BY 學號
則會得到
學號 SUM(分數)
=====================
0001 241
0002 143
COUNT() 是用來計算 GROUP BY 的資料有幾組
譬如上例 GROUP BY 學號之後 0001 的 count 會是 3,0002 的會是 2
---
剛看了你的圖你是不是主鍵設錯了,把一堆欄位都設成 primary key 了?
怎麼 update 後面的 where 子句有一大堆 AND ......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.80.141.41
※ 編輯: starjou 來自: 219.80.141.41 (11/24 03:25)