在SQL上计算类别中的不同项目

时间:2013-02-01 19:46:55

标签: php mysql sql count

我需要按如下方式编写SQL语句:

我有一个包含许多项目的表格,每个项目都有一个类别。总共有3个类别。

我需要选择DISTINCT类别,然后按每个类别中的项目数量排序。

这会是一个好方法吗?还是太慢了?

SELECT DISTINCT category, count(*) AS counter
FROM item_descr
GROUP BY category
ORDER BY counter DESC

3 个答案:

答案 0 :(得分:11)

由于您使用DISTINCT

,因此不需要GROUP BY category
SELECT category, count(*) AS counter
FROM item_descr
GROUP BY category
ORDER BY counter DESC

答案 1 :(得分:6)

GROUP BY正在做你想做的事。 DISTINCT是多余的。

答案 2 :(得分:0)

如果您希望获得良好的性能,尤其是在较大的表格上,则对类别建立索引非常重要。