MySQL - 按列值排序,按其他列分组

时间:2016-07-25 05:02:26

标签: mysql sql-order-by

Name    1-3    4-6   7-9
------------------------
Dan       0      3     4
Jane      1      6     0
Mike      3      3     3
Dan       2      2     0
Jane      3      4     2
Dan       1      3     0

这是需要完成的顺序。

Name    1-3    4-6   7-9
------------------------
Dan       0      3     4
Dan       1      3     0
Dan       2      2     0
Mike      3      3     3
Jane      3      4     2
Jane      2      2     0

简而言之,以字段7-9中的最高编号开头的订单然后按名称分组,然后再按每个组名称排序(在此例中为Dan& { {1}})根据字段Jane4-6

2 个答案:

答案 0 :(得分:1)

尝试此查询:

SELECT Name, `1-3`, `4-6`, `7-9`
FROM yourTable
ORDER BY `7-9` DESC, Name, `4-6` DESC, `1-3` DESC

答案 1 :(得分:0)

我认为你想要的结果中有拼写错误,试试这个:

select t1.*
from yourtable t1
join (
  select Name, max(`7-9`) orderby
  from yourtable
  group by Name
  order by max(`7-9`)
) t2 on t1.Name = t2.Name
order by orderby desc, `4-6` desc, `1-3`

Demo Here