我认为我甚至没有说出来,但我会在排序前后显示表格。
排序前:
___________________
| NAME | AGE |
|==================|
| Ace | 23 |
| May | 15 |
| Ann | 21 |
| May | 38 |
| Ace | 77 |
| Ann | 35 |
|==================|
排序后:
___________________
| NAME | AGE |
|==================|
| Ace | 77 |
| Ace | 23 |
| May | 38 |
| May | 15 |
| Ann | 35 |
| Ann | 21 |
|==================|
因此,正如您所看到的那样,我按年龄顺序按降序排序,但是,它会将具有相同名称的那些组合在一起。我将如何在MySQL中执行此操作?
谢谢!
答案 0 :(得分:8)
您需要使用最大年龄加入表格。这是一种方式:
select t.*
from t join
(select name, max(age) as maxage
from t
group by name
) tsum
on tsum.name = t.name
order by tsum.maxage desc, t.name, t.age desc;
编辑:
我认为你的问题的答案是将t.age desc
放在order by
条款中。 Here是一个演示代码的SQL小提琴。
至于你的第二个问题,where
条款将在order by
之前。{/ p>