未毕业小白
2020-07-23 16:43
采纳率: 60%
浏览 151

Mysql ,请大佬帮忙解决一下问题,救救孩子吧

图片说明
这样的一个table,怎么查出不同城市number最大的cl??

最终效果:
图片说明

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • sanshizhang 2020-07-23 17:43
    已采纳

    select t1.* from (select city,max(number) mnum from city group by city ) t
    left join (select * from city) t1 on t.city=t1.city and t.mnum = t1.number order by t1.city;

    表结构及数据如下:
    CREATE TABLE city (
    city varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
    c1 varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
    number int(11) NULL DEFAULT NULL
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


    -- Records of city


    INSERT INTO city VALUES ('北京', 'T', 20);
    INSERT INTO city VALUES ('北京', 'c', 50);
    INSERT INTO city VALUES ('深圳', 'T', 50);
    INSERT INTO city VALUES ('深圳', 'c', 20);
    INSERT INTO city VALUES ('北京', 'T', 50);
    INSERT INTO city VALUES ('上海', 'T', 20);

    SET FOREIGN_KEY_CHECKS = 1;

    打赏 评论
  • u013228784 2020-07-23 17:18

    注意一下 number 的数据类型

    打赏 评论
  • sunkaihua123 2020-07-23 17:32

    select city,cl,max(number)from tablename group by city,cl;

    打赏 评论
  • 芒种、 2020-07-23 17:34

    select cl ,number from 表名 where number = (select max(number) from 表名);

    打赏 评论

相关推荐 更多相似问题