2017-04-18 86 views
0

我如何能得到谁的年龄最大在他的等级名称的名称我怎样才能得到它的年龄是最大在他的年级

表信息:

mysql> select * from stu; 
+----+------+------+-------+ 
| id | name | age | grade | 
+----+------+------+-------+ 
| 1 | a | 11 |  1 | 
| 2 | b | 12 |  1 | 
| 3 | c | 13 |  1 | 
| 4 | d | 11 |  2 | 
| 5 | e | 12 |  2 | 
| 6 | f | 13 |  2 | 
+----+------+------+-------+ 
6 rows in set (0.00 sec) 

mysql> describe stu; 
+-------+---------+------+-----+---------+----------------+ 
| Field | Type | Null | Key | Default | Extra   | 
+-------+---------+------+-----+---------+----------------+ 
| id | int(11) | NO | PRI | NULL | auto_increment | 
| name | char(1) | YES |  | NULL |    | 
| age | int(11) | YES |  | NULL |    | 
| grade | int(11) | YES |  | NULL |    | 
+-------+---------+------+-----+---------+----------------+ 
4 rows in set (0.00 sec) 
这样我可以得到

最大年龄和年级,但我怎么能得到这个年龄的名字是他的成绩最高。

mysql> select max(age),grade from stu group by grade; 
+----------+-------+ 
| max(age) | grade | 
+----------+-------+ 
|  13 |  1 | 
|  13 |  2 | 
+----------+-------+ 
2 rows in set (0.00 sec) 

回答

1

你可以试试这个:

SELECT A.* 
FROM STU A 
INNER JOIN (SELECT MAX(AGE) AS MAX_AGE,GRADE FROM STU GROUP BY GRADE) B ON A.GRADE = B.GRADE AND A.AGE= B.MAX_AGE 
+0

感谢,我认为这是不完美的== – hisenyuan

+0

@Strawberry感谢您校正 – etsa

0

试试这个:

select max(name), max(age),grade from stu 
group by grade 
+0

谢谢,没关系。 – hisenyuan