看板 Database 關於我們 聯絡資訊
※ 引述《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)