按最高值排序行

时间:2015-03-12 16:05:31

标签: mysql sql

我有一个数据库,其中包含公司名称列表和得分值。

我想按照相同的网址的最高总和来排序行。

我不确定如何正确解释。

我虽然这个MySQL查询可以正常工作select * from table order by url asc, total desc但是它不会在顶部显示相同网址的总和。

url        total
=======    =======
ASOS        222
Tesco       11
ASOS        11111
Tesco       123
ASOS        22
Argos       12345
Argos       2

查询应按此顺序显示行

url        total
=======    =======
Argos       12345
Argos       2
ASOS        11111
ASOS        222
ASOS        22
Tesco       123
Tesco       11

2 个答案:

答案 0 :(得分:4)

您可以在子查询中汇总,然后JOIN汇总以使用ORDER BY中的总计:

SELECT a.url,a.total
FROM YourTable a
JOIN (SELECT url,SUM(total) as gTotal
      FROM YourTable
      GROUP BY url) b
  ON a.url = b.url
ORDER BY b.gTotal DESC,a.total DESC

修改:可能会在url a.total之前添加ORDER BY,以防两个网址值之间的总计有关系,只取决于您的首选行为。< / p>

答案 1 :(得分:0)

我创建一个表并输入与您相同的数据,它对我来说很好。

你确定total是一个整数而不是一个字符串吗?

请在您的数据库磁带上进行操作,并在此处粘贴结果。

  

desc your_table