mySql學生成績排名

MySql 實現查詢每個班級學習成績前N的學生

首先建一張學生成績信息表:

CREATE TABLE t_student (
  stu_id int(11) NOT NULL AUTO_INCREMENT COMMENT '學生ID',
  stu_name varchar(50) NOT NULL COMMENT '學生名稱',
  score decimal(5, 2) NOT NULL COMMENT '學生總成績',
  class_id int(11) NOT NULL COMMENT '班級ID',
  PRIMARY KEY (stu_id),
  INDEX IDX_t_student_score (score)
)
ENGINE = INNODB
AUTO_INCREMENT = 7
AVG_ROW_LENGTH = 2730
CHARACTER SET utf8
COLLATE utf8_general_ci
COMMENT = '學生信息表'

ROW_FORMAT = DYNAMIC;


插入如下的數據:

1	張三	80.00	1
2	李四	81.00	1
3	信達	70.00	1
4	魯西	90.00	2
5	米亞	93.00	1
6	凱斯	85.00	2


查詢每個班級學生成績前三的學生信息,查詢腳本如下:

SELECT a.stu_name,a.score,a.class_id FROM t_student a LEFT JOIN t_student b
  ON a.class_id = b.class_id AND a.score < b.score
  GROUP BY a.class_id ,a.stu_id,a.score
  HAVING COUNT(b.stu_id) < 3 ;


查詢結果:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章