[SQL]MySQL根据某一个字段的最大值/最小值作为唯一来获得数据

2022-01-20 663点热度 0人点赞 0条评论

需求说明

例如有这样一张表,存的是学生测验成绩,测验记录可以有多条,我们需要筛选出每个学生最近一次的测验记录

mysql> desc t_student_test;
+--------------+--------------+------+-----+---------+-------------------+
| Field        | Type         | Null | Key | Default | Extra             |
+--------------+--------------+------+-----+---------+-------------------+
| id           | varchar(36)  | NO   | PRI | NULL    |                   |
| create_date  | datetime     | YES  |     | NULL    |                   |
| update_date  | datetime     | YES  |     | NULL    |                   |
| no           | varchar(64)  | YES  |     | NULL    |                   |
| name         | varchar(255) | YES  |     | NULL    |                   |
| score        | int          | YES  |     | NULL    |                   |
| remark       | varchar(512) | YES  |     | NULL    |                   |
+--------------+--------------+------+-----+---------+-------------------+
7 rows in set (0.00 sec)

根据create_date最大的,select出记录

可以先使用group,将no(学号) create_date(测验时间)分组

SELECT
    * 
FROM
    t_student_test
WHERE
    ( no, create_date ) IN (
    SELECT no, MAX( create_date ) FROM t_student_test
    GROUP BY no)

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论