題主沒有提供具體的應用場景,只有編一個了。
現在要統計20級各班數學在2020年下學年期末考試的最高分。先構建幾張表,只列一些必要的欄位。
表一,班級表 表名:class,欄位名:班級名稱 classname ,班級ID classID
表二,學生表 表名:student,欄位名:學生名稱 stuname ,學生ID stuID,班級ID classID
表三,學科表 表名:subject,欄位名:學科名稱 subname ,學科ID subID
表四,成績表 表名:grade,欄位名:學生ID stuID,學科ID subID,分數 num,學年 year, 學期 term
這裡假設班級的名稱都是20級一班,20級二班這樣的。
查詢語句:
select c.classname 班級名稱, max(g.num) as 最高分
from grade g
left join student st on st. stuID=g.stuID
left join class c on c.classID=st.classID
left join subject su on su.subID=g.subID
where c.classname like "20級%" and su.subname = "數學" and g.year="2020" and g.term="下"
group by c.classname
如上,實現多條件(4個條件),彙總查詢最大值(最高分)。
題主沒有提供具體的應用場景,只有編一個了。
現在要統計20級各班數學在2020年下學年期末考試的最高分。先構建幾張表,只列一些必要的欄位。
表一,班級表 表名:class,欄位名:班級名稱 classname ,班級ID classID
表二,學生表 表名:student,欄位名:學生名稱 stuname ,學生ID stuID,班級ID classID
表三,學科表 表名:subject,欄位名:學科名稱 subname ,學科ID subID
表四,成績表 表名:grade,欄位名:學生ID stuID,學科ID subID,分數 num,學年 year, 學期 term
這裡假設班級的名稱都是20級一班,20級二班這樣的。
查詢語句:
select c.classname 班級名稱, max(g.num) as 最高分
from grade g
left join student st on st. stuID=g.stuID
left join class c on c.classID=st.classID
left join subject su on su.subID=g.subID
where c.classname like "20級%" and su.subname = "數學" and g.year="2020" and g.term="下"
group by c.classname
如上,實現多條件(4個條件),彙總查詢最大值(最高分)。