我需要编写以下SQL语句:
我有一张表,其中包含许多项目,每个项目都有一个类别。总共有3个类别。
我需要选择DISTINCT的类别,然后按每个类别中的项目数量对它们进行排序。
这种方法行得通吗?或者太慢了吗?
SELECT DISTINCT category, count(*) AS counter
FROM item_descr
GROUP BY category
ORDER BY counter DESC
由于您正在使用 GROUP BY category
,所以不需要使用 DISTINCT
:
SELECT category, count(*) AS counter
FROM item_descr
GROUP BY category
ORDER BY counter DESC
GROUP BY
可以满足你的需求,DISTINCT
是多余的。
如果您想在较大的表格中获得良好的性能,特别是在分类上,则拥有索引非常重要。