DROP TABLE IF EXISTS `TableName1`;CREATE TABLE `TableName1` (
  `name` varchar(50) default NULL,
  `depart` varchar(50) default NULL,
  `age` int(11) default NULL,
  `id` bigint(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `TableName1` */insert into `TableName1`(`name`,`depart`,`age`,`id`) values ('user1','a',25,1),('user2','a',28,2),('user3','a',27,3),('user4','b',23,4),('user5','b',29,5),('user5','c',32,6);
想要的结果:user6 c 32
user5 b 29
user1 a 28这个sql应该如何写啊?谢谢!

解决方案 »

  1.   

    自己解决了SELECT * FROM (SELECT depart, MAX(age) age FROM TableName1 GROUP BY depart) t ORDER BY age desc
      

  2.   

    mysql> select * from TableName1;
    +-------+--------+------+----+
    | name  | depart | age  | id |
    +-------+--------+------+----+
    | user1 | a      |   25 |  1 |
    | user2 | a      |   28 |  2 |
    | user3 | a      |   27 |  3 |
    | user4 | b      |   23 |  4 |
    | user5 | b      |   29 |  5 |
    | user5 | c      |   32 |  6 |
    +-------+--------+------+----+
    6 rows in set (0.00 sec)
    你的结果是怎么来的? user6  是哪来的?!
    user6 c 32
    user5 b 29
    user1 a 28
    select name,depart,age
    from TableName1
    order by age desc
    limit 3;
      

  3.   

    你的这个SQL与你要求的结果也不一样啊。mysql> SELECT * FROM (SELECT depart, MAX(age) age FROM TableName1 GROUP BY depar
    t) t ORDER BY age desc;
    +--------+------+
    | depart | age  |
    +--------+------+
    | c      |   32 |
    | b      |   29 |
    | a      |   28 |
    +--------+------+
    3 rows in set (0.00 sec)mysql>
      

  4.   

    其实你直接 如下就行了。
    mysql> SELECT depart, MAX(age) age FROM TableName1 GROUP BY depart order by 2 de
    sc;
    +--------+------+
    | depart | age  |
    +--------+------+
    | c      |   32 |
    | b      |   29 |
    | a      |   28 |
    +--------+------+
    3 rows in set (0.00 sec)mysql>
      

  5.   

    哪来的user6?最后一条是不是应该是user6,c,32,6?
    mysql> select name,depart,age from tablename1 order by age desc limit 3;
    +-------+--------+------+
    | name  | depart | age  |
    +-------+--------+------+
    | user6 | c      |   32 |
    | user5 | b      |   29 |
    | user2 | a      |   28 |
    +-------+--------+------+
    3 rows in set (0.00 sec)这样?