0

试图找出这个愚蠢的语法问题

select distinct Count(Mgr) from CarsManager

返回所有记录..应该是子集计数。

4

2 回答 2

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 中的非空值。

计数 (Transact-SQL)

COUNT(ALL expression) 计算组中每一行的表达式并返回非空值的数量。

在这种情况下Count(SomeCol),ALL是隐含的。

于 2012-05-30T03:02:28.407 回答
0

你不能一次完成所有这些 - 你需要一个子查询:

SELECT count(*) FROM (SELECT DISTINCT Mgr FROM CarsManager) as tbl1
于 2012-05-30T03:02:08.603 回答