我正在尝试对多行进行分组并按总值排序,但我正在努力弄清楚什么是错误的。
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
但是这显示了错误顺序的结果。
任何帮助都将不胜感激。
答案 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