Re: [SQL ] UPDATE 用法?
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 11 之 13 篇):