Python 之 MySql 每日一練 19:各科成績排名統計

Python 之 MySql 每日一練 19:各科成績排名統計

Python 之 MySql 每日一練 19:各科成績排名統計



一、表名和字段

–1. 學生表 student (s_id,s_name,s_birth,s_sex) –學生編號,學生姓名,出生年月,學生性別


–2. 課程表 course (c_id,c_name,t_id) –課程編號,課程名稱,教師編號


–3. 教師表 teacher (t_id,t_name) –教師編號,教師姓名


–4. 成績表 score (s_id,c_id,s_score) –學生編號,課程編號,分數

具體詳情看


二、Mysql 題目

按各科成績進行排序,並顯示排名(Score 重複時保留名次空缺

難度係數 (單選)
0人
0%
A.★
0人
0%
B.★★
0人
0%
C.★★★
0人
0%
D.★★★★
0人
0%
E.★★★★★
<button>投票/<button>

三、Mysql 分析

1、用到的表為 score

2、group by x,y

GROUP BY X, Y意思是將所有具有相同 X 字段值和 Y 字段值的記錄放到一個分組裡。

3、left join

score a left join score b on a.c_id = b.c_id and a.s_score < b.s_score

是循環 a 表中的全部行,與 b 表第一行比,顯示出滿足條件的行,行的列包括 b 第一行內容

循環 a 表中的全部行,與 b 表中第二行比,顯示出滿足條件的行,行的列包括 b 第二行內容

……

選好 a 表中的全部行,與 b 表中最後一行比.

這裡主要是為了找出大於 a 同科成績的人,統計後 + 1 ,即為a 的科目排名

四、Mysql 方案

1、Mysql 方案

Python 之 MySql 每日一練 19:各科成績排名統計

2、Mysql 結果:

Python 之 MySql 每日一練 19:各科成績排名統計

>>>


分享到:


相關文章: