试图多次订购表

时间:2015-03-11 16:49:19

标签: mysql sql sql-order-by

我正在尝试对多行进行分组并按总值排序,但我正在努力弄清楚什么是错误的。

Name       Total
=======    =======
ASOS        222
Tesco       11
ASOS        11111
Tesco       123

表格应如下所示

Name       Total
=======    =======
ASOS        11111
ASOS        222
Tesco       123
Tesco       11

我认为这个查询会起作用

select * from tablename order by name asc, total asc

但是这显示了错误顺序的结果。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:1)

试试这个

select * from tablename order by total desc

如果您不熟悉ORDER BY语法,那么选择两个ORDER BY是不会有效的。根据你的描述,看起来你只想要最高的总数。此查询将按总降序(最高的第一个)

对结果进行排序

如果您希望名称同时升序(最低位),请尝试

select * from tablename order by name asc, total desc

答案 1 :(得分:0)

第一个订单,每个名称的最大总数,降序,按降序排序:

select *
from tablename t1
order by (select max(total) from tablename t2
          where t1.name = t2.name) desc,
         total desc

答案 2 :(得分:0)

试试这个:

SELECT *
FROM tablename
ORDER BY
    Name,
    char_length(CAST(Total As varchar(max))) DESC,
    Total DESC