试图找出这个愚蠢的语法问题
select distinct Count(Mgr) from CarsManager
返回所有记录。应该是子集计数。
答案 0 :(得分:1)
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中计算非null 值。
COUNT(ALL表达式)计算组中每一行的表达式,并返回非空值的数量。
在Count(SomeCol)
的情况下,隐含ALL
。
答案 1 :(得分:0)
你无法一次性完成这一切 - 你需要一个子查询:
SELECT count(*) FROM (SELECT DISTINCT Mgr FROM CarsManager) as tbl1