如何通过降序匹配列,并匹配mysql上另一列的对

时间:2013-09-06 02:38:14

标签: mysql

我认为我甚至没有说出来,但我会在排序前后显示表格。

排序前:

___________________
|  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中执行此操作?

谢谢!

1 个答案:

答案 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>