如何计算每个DISTINCT?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何计算每个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

这给了我第一个类别......

我被困在这里。 :)

答案

使用GROUP BY

SELECT category, COUNT(*) AS count
FROM dbtable
GROUP BY category;
另一答案

使用分组和计数如下:

SELECT category,count(category) FROM dbtable GROUP BY category
另一答案

您需要添加GROUP BY:

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

请注意:

  • 您需要GROUP BY来收集数据,以便DB服务器可以计算每一行并按类别对其进行过滤,而服务器不知道要计算哪些行;
  • 您必须记住,Group By子句将始终位于SQL查询的末尾,就像Order by子句一样。
  • 你不需要DISTINCT,因为GROUP BY可以完成这项工作。 (谢谢jarlh)

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

另一答案

试试这个 :-

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

如果你想要特定的计数记录然后试试这个

   SELECT category, COUNT(1) FROM dbtable GROUP BY category having count(1)>10

以上是关于如何计算每个DISTINCT?的主要内容,如果未能解决你的问题,请参考以下文章

如何管理在每个 git 版本中添加私有代码片段?

每个月内选择 DISTINCT 计数条​​目。 MYSQL

如何在一个值之前的值上计算聚合函数 COUNT(DISTINCT)?

Hive之count(distinct xxx)优化写法

Hive之count(distinct xxx)优化写法

Hive之count(distinct xxx)优化写法