Re: [SQL ] UPDATE 用法?

看板Database作者 (bop000111)時間16年前 (2008/01/25 01:00), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串11/13 (看更多)
※ 引述《dcplay01 (dcplay)》之銘言: : ※ 引述《starjou (周星星)》之銘言: : : AVG 不是要用 GROUP BY 併用? : : UPDATE 可以跟 SELECT 併用 : : 你要 UPDATE 的 table 跟 SELECT 應該是有一個鍵值關聯吧? : : 然後 SELECT 的平均應該是有某一個鍵值做 GROUP 的依據再平均 : : 譬如學號 : : 所以 某個學生的 所有分數平均 = : : SELECT AVG(分數) FROM 成績 GROUP BY 學號 : : UPDATE 總成績 SET 平均分數 = (SELECT AVG(分數) FROM 成績 : : WHERE 成績.學號 = 總成績.學號 GROUP BY 成績.學號) : : 這是你想做的嗎? : 我是想做 : SELECT AVG(分數) : FROM 課程&分數資料表 : WHERE 某個學生&某些課程 有些課程的成績不列入 : 想把這結果放在 : 同樣的資料表下... : update 課程&分數資料表 set 某類專業平均 = (SELECT AVG(GRADE)成績平均 : FROM 課程&分數資料表 : WHERE 某個學生 & 某幾科的成績 : GROUP BY 1) : 可是不行... update t1 set t1.avg_grade = t2.avg_grade1 from grade_table t1 join ( select student_id, avg(grade) avg_grade1 from grade_table where 你要的條件 group by student_id )t2 on t1.student_id = t2.student_id 試試看吧, 此類問題之解決方式就是先找出學生及平均分數(即student_id and avg_grade1), 此查詢結果再與Table作join, 即可作更新 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.208.158
文章代碼(AID): #17cCGkx- (Database)
討論串 (同標題文章)
文章代碼(AID): #17cCGkx- (Database)