首页 > 解决方案 > 如何计算每个 DISTINCT?

问题描述

我试图计算我从不同的每次命中中获得多少。于是开始:

SELECT DISTINCT category FROM dbtable

这给了我6个不同的类别,很好。现在我想计算每一行,所以结果如下所示:

category, 4
category, 8
category, 12
category, 72
category, 5
category, 65

我试过了:

SELECT COUNT (DISTINCT category) FROM dbtable

这给了我的第一类金额......

我在这里卡住了。:)

标签: sqlsqlite

解决方案


您需要添加GROUP BY

SELECT category, COUNT(*) FROM dbtable GROUP BY category

请注意:

  • 您需要 GROUP BY 来收集数据,以便数据库服务器可以计算每一行并按您的类别过滤它,没有它服务器不知道要计算哪些行;

  • 您必须记住,Group By 子句总是出现在 SQL 查询的末尾,就像 Order by 子句一样。

  • 不需要 DISTINCT,因为 GROUP BY 完成了这项工作。(感谢 jarlh)

你可以在这里找到更多关于小提琴的解释:https ://www.w3schools.com/sql/sql_groupby.asp


推荐阅读