1. 程式人生 > >mysql 查詢 各班級中分數最高的 學生資訊

mysql 查詢 各班級中分數最高的 學生資訊

查詢: 各年級中 分數最高的學習資訊

示例表如下:

create table it_student(
id int primary key auto_increment,  -- 主鍵id
name varchar(20),   -- 姓名
gender enum('male','female'),  -- 性別
class_id tinyint unsigned,  -- 班級號
age int unsigned,  -- 年齡
home varchar(40),  -- 家鄉
score tinyint unsigned  -- 成績
);

語句:select name,home,score from(select * from it_student order by score desc

) as s group by class_id;

因為查詢分組group by 的特性是分組 並取各組第一條查詢到的資料資訊(a和b是第一組,如果a排前面,那麼就分組就拿a的那條資訊,如果是b則拿b的資訊),我們單純進行分組能查到各分組的最高分,但是不一定能相應查詢到對應的最高分的名稱、年齡等資訊。所以,先將全部資料進行降序排列,然後班級分組(group by class_id)確保mysql查詢中各班的最高分那條記錄是首先查到的(這點很重要)