2013-03-05 65 views
0

我想排序一个名为“BNAME”使用降序或命名列列“计数”为了通过列名降序排列

我有我这个代码是没有排序:

SELECT bname FROM brandnames HAVING count(*) > 0 LIMIT 11 
+1

'ORDER BY'最后应用于聚合后,所以只需'ORDER BY COUNT(*)DESC' – 2013-03-05 19:58:37

+0

您想按名为'count'的列进行排序,还是按'count(*)'排序? – 2013-03-05 20:00:08

+0

您还需要'GROUP BY bname'。 – 2013-03-05 20:00:25

回答

0
SELECT bname 
FROM brandnames 
HAVING count(*) > 0 
ORDER BY bname DESC 
LIMIT 11 
+2

措辞有点令人困惑,但我认为OP要按'count'而不是'bname'排序。 – mellamokb 2013-03-05 19:59:03

+0

这里缺少一个必要的GROUP BY bname ... – 2013-03-05 19:59:57

+0

我之前也试过这个,但它只显示了最高的一行1行:( – 2013-03-05 20:01:07

0

使用ORDER BY _column_ ASC/DESC

SELECT bname FROM brandnames HAVING count(*) > 0 ORDER BY bname DESC LIMIT 11 
1

只需添加条款ORDER BY像这样:

ORDER BY bname DESC 

DESC将按您的后代顺序排列结果。你可以删除DESC,你的结果将是上升的。

查看更多在这里:"Order by" optimization

+0

我想按点数排序这不起作用 – 2013-03-05 20:37:33

0
ORDER BY bname DESC 

追加,为您的SQL语句的结束。

ORDER BY按特定领域的订单。

DESC指降序。这意味着反向字母或反向数字,或相反的日期顺序。

取决于类型。删除DESC它会自动升序。

祝你好运!