MySQL:求助个基础的SQL问题
巴扎黑
巴扎黑 2017-04-17 14:24:24
[MySQL讨论组]

有表school如下:

CREATE TABLE school (
    class INT(11),
    name VARCHAR(20),
    status INT(11)
);

插入测试数据

INSERT INTO school VALUES(1, 'Tim', 2);
INSERT INTO school VALUES(1, 'Jack', 3);
INSERT INTO school VALUES(2, 'Lucy', 1);
INSERT INTO school VALUES(2, 'Tom', 3);
INSERT INTO school VALUES(2, 'Lily', 2);

需按class分组,并获取每班status最大的那条记录,最终得到

class name status
1     Jack 3
2     Tom  3

求解,谢谢

巴扎黑
巴扎黑

全部回复(3)
ringa_lee
select school.class, school.name, school.status from school inner join (SELECT class,MAX(status) as status from school GROUP BY class) B on school.class = B.class and school.status = B.status;
+-------+------+--------+
| class | name | status |
+-------+------+--------+
|     1 | Jack |      3 |
|     2 | Tom  |      3 |
+-------+------+--------+
巴扎黑
SQL:SELECT id,MAX(status) status from demo GROUP BY id

天蓬老师

用子查询:
SELECT * FROM (SELECT class,name,status from school ORDER BY status DESC) as result GROUP BY result.class

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号