我需要按如下方式编写SQL语句:
我有一个包含许多项目的表格,每个项目都有一个类别。总共有3个类别。
我需要选择DISTINCT类别,然后按每个类别中的项目数量排序。
这会是一个好方法吗?还是太慢了?
SELECT DISTINCT category, count(*) AS counter
FROM item_descr
GROUP BY category
ORDER BY counter DESC
答案 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)
如果您希望获得良好的性能,尤其是在较大的表格上,则对类别建立索引非常重要。