mysql 如何將女學(xué)生中低于總平均成績的成績提高5%?
問題描述
mysql> desc SC ;FieldTypeNullKeyDefaultExtraSIDint(11)NOPRINULL CIDint(11)NOPRINULL GRADEint(11)YES NULL3 rows in set (0.00 sec)
mysql> desc S ;FieldTypeNullKeyDefaultExtraSIDint(11)NOPRINULL SNAMEvarchar(20)YES NULL AGEint(11)YES NULL SEXint(11)YES NULL表結(jié)構(gòu)如上, 我寫了一個sql:
update SC set GRADE = (GRADE+GRADE*0.05) where GRADE < (select AVG(GRADE) from SC x) and SID in (select SID from S where SEX = 1) ;
但是報錯:
ERROR 1093 (HY000): You can’t specify target table ’SC’ for update in FROM clause
我到mysql的官網(wǎng)上也沒找到解決的辦法, 看了幾個博客說是要使用中間表, 但是還是寫不出來, 那么正確的sql是怎樣的呢? 望告知
問題解答
回答1:begindeclare n_avg number;select avg(grade) into n_avg from SC;update SC set GRADE = GRADE*1.05 where grade<n_avg and sid in (select SID from S where SEX=1);end回答2:
select @avgs:=(select avg(grade) from SC);update SC set GRADE = (GRADE+GRADE*0.05) where GRADE < @avgs and SID in (select SID from S where SEX = 1) ;回答3:
有SC表里CID表示課程ID,所以,應(yīng)該是按課程分類,比如語文的平均分是80,那么語文低于80分的女生的分數(shù),就要增加5%,然后每門課都按這樣的邏輯進行
我的理解對嘛?對的話,我就敲代碼了。
相關(guān)文章:
1. html5 - 如何實現(xiàn)帶陰影的不規(guī)則容器?2. javascript - 循環(huán)嵌套多個promise應(yīng)該如何實現(xiàn)?3. mysql優(yōu)化 - 關(guān)于mysql分區(qū)4. css - 移動端字體設(shè)置問題5. objective-c - iOS開發(fā)支付寶和微信支付完成為什么跳轉(zhuǎn)到了之前開發(fā)的一個app?6. css3 - rem布局下,用戶瀏覽器的最小字號是12px怎么辦?7. vue.js - vue 打包后 nginx 服務(wù)端API請求跨域問題無法解決。8. 請教各位大佬,瀏覽器點 提交實例為什么沒有反應(yīng)9. 前端 - IE9 css兼容問題10. javascript - ionic2 input autofocus 電腦成功,iOS手機鍵盤不彈出
