与GROUP BY一起使用时的COUNT范围(DISTINCT ..)

时间:2013-09-09 18:22:02

标签: mysql sql group-by distinct

我正在做类似下面的事情(例如,通过State获得名为“Mark”的不同人物):

Select count(distinct FirstName) FROM table
GROUP BY State

认为首先按查询组织完成组,这样,distinct只相对于每个“group by”?基本上,“Mark”可以在每个组中显示为“独特”计数吗?这会将我的独特表达“范围”仅限于行,我相信......

2 个答案:

答案 0 :(得分:0)

这实际上可能取决于DISTINCT的使用位置。例如,SELECT DISTINCT COUNT(SELECT COUNT(DISTINCT不同。

在这种情况下,它会按照您的意愿工作,并在每个组中计算不同的名称(即使名称在不同的组中不相同)。

答案 1 :(得分:0)

您的理解是正确的。基本上,Group by表示采用一组行并将它们聚合成一行(基于标准)。所有聚合函数 - 包括count(distinct) - 汇总了该组中的值。

注意,您使用的是“范围”。您知道,这在SQL中具有特殊含义。含义是指查询中编译器理解列或表别名的部分。