我正在做类似下面的事情(例如,通过State获得名为“Mark”的不同人物):
Select count(distinct FirstName) FROM table
GROUP BY State
我认为首先按查询组织完成组,这样,distinct只相对于每个“group by”?基本上,“Mark”可以在每个组中显示为“独特”计数吗?这会将我的独特表达“范围”仅限于行,我相信......
答案 0 :(得分:0)
这实际上可能取决于DISTINCT
的使用位置。例如,SELECT DISTINCT COUNT(
与SELECT COUNT(DISTINCT
不同。
在这种情况下,它会按照您的意愿工作,并在每个组中计算不同的名称(即使名称在不同的组中不相同)。
答案 1 :(得分:0)
您的理解是正确的。基本上,Group by
表示采用一组行并将它们聚合成一行(基于标准)。所有聚合函数 - 包括count(distinct)
- 汇总了该组中的值。
注意,您使用的是“范围”。您知道,这在SQL中具有特殊含义。含义是指查询中编译器理解列或表别名的部分。