按平均成績從高到低顯示所有學生的“數據庫”、“企業管理”、“英語”三門的課程成績,按如下形式顯示: 學生ID,,數據庫,企業管理,英語,有效課程數,有效平均分


MySQL的寫法:

SELECT p.學生ID,p.數據庫,p.企業管理,p.英語,p.有效課程數,ROUND(p.總分/(CASE WHEN p.有效課程數 = 0 THEN 1 ELSE p.有效課程數 END)) 有效平均分 FROM (SELECT t.學生ID 學生ID,     t.數據庫 數據庫,   t.企業管理 企業管理, t.英語 英語, (CASE WHEN t.數據庫 IS NULL THEN 0 ELSE 1 END)+(CASE WHEN t.企業管理 IS NULL THEN 0 ELSE 1 END)+(CASE WHEN t.英語 IS NULL THEN 0 ELSE 1 END) 有效課程數, IFNULL(t.數據庫,0)+IFNULL(t.企業管理,0)+IFNULL(t.英語,0) 總分 FROM (SELECT stu.sid 學生ID, s.c 數據庫,q.c 企業管理,y.c 英語 FROM student stu LEFT JOIN (SELECT sc.sid n,sc.score c FROM sc ,course c WHERE sc.cid=c.cid AND c.cName ='數據庫') s ON stu.sid=s.n LEFT JOIN (SELECT sc.sid n,sc.score c FROM sc ,course c WHERE sc.cid=c.cid AND c.cName ='企業管理') q ON stu.sid=q.n LEFT JOIN (SELECT sc.sid n,sc.score c FROM sc ,course c WHERE sc.cid=c.cid AND c.cName ='英語') Y ON stu.sid=y.n )t )p ORDER BY 有效平均分 DESC;

MySQL判斷為null,寫法為is null,而不是  t.數據庫 = NULL 

IFNULL(expr1,expr2)

如果expr1不是NULL,IFNULL()返回expr1,否則它返回expr2。IFNULL()返回一個數字或字符串值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 練習9--檢索"01"課程分數小於60,按分數降序排列的學生信息 | 按平均成績從高到低顯示所有學生的所有課程的成績以及平均成績 C語言之:結構體動態分配內存(利用結構體數組保存不超過10個學生的信息,每個學生的信息包括:學號、姓名和三門課(高數、物理和英語 )的成績和平均分(整型)。) 有10個學生,每個學生的數據包括學號、姓名、3門課程的成績,從鍵盤輸人10個學生數據,要求輸出3門課程總平均成績,以及最高分的學生的數據(包括學號、姓名、3門課程成績、平均分數) java例題_50 題目:有五個學生,每個學生有 3 門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成 績),計算出平均成績,將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。 有一個班4個學生,5門課程 ①求第1門課程的平均分;②找出有兩門以上課程不及格的學生,輸出他們的學號和全部課程成績及平均成績; ③找出平均成績在90分以上或全部課程成績在85分以上的學生 分別編3個函數實現以上3個要求 練習10 -- 查詢各科成績最高分、最低分和平均分:以如下形式顯示:課程ID,課程name,最高分,最低分,平均分,及格率,中等率,優良率,優秀率 --及格為>=60,中等為:70-80,優良為:80-90,優秀為:>=90 2017.4.20實驗三:2、定義一個包含學生學號、姓名、年齡和三門課成績的結構體,輸入10個學生信息,並按總成績由高到低的順序排序並輸出。 python實現:寫一個班級的類, 存儲班里人數,統計班級里各學科的總分的最高分、各學科的平均分; 寫班級里的學生類,存儲學生所有成績, 計算某個學生的全部課程的平均分、全部課程的總分、全部課程的最高分 代碼實現:鍵盤錄入5個學生信息(姓名,語文成績,數學成績,英語成績),按照總分從高到低輸出到控制台 按各科平均成績從低到高和及格率的百分數從高到低順序
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM