试图找出这个愚蠢的语法问题
select distinct Count(Mgr) from CarsManager
返回所有记录..应该是子集计数。
Select Mgr, Count(*)
From CarsManager
Group By Mgr
您没有指定应进行的子集计数。鉴于您的示例,我认为它是Mgr
列。
如果您寻求的是独特经理的数量,那么您可以这样做:
Select Count(Distinct Mgr)
From CarsManager
Count(*) 和 Count(SomeColumn) 之间的区别
在评论中,您询问了Count(*)
和之间的区别Count(SomeCol)
。区别不在于性能,而在于逻辑。Count(*)
计算行数,而不考虑列。Count(SomeCol)
计算SomeCol 中的非空值。
COUNT(ALL expression) 计算组中每一行的表达式并返回非空值的数量。
在这种情况下Count(SomeCol)
,ALL
是隐含的。
你不能一次完成所有这些 - 你需要一个子查询:
SELECT count(*) FROM (SELECT DISTINCT Mgr FROM CarsManager) as tbl1