CustomerID,是独一无二的。
这个问题给出了什么结果?
SELECT personalnumber,
Amount = Count(CustomerID),
FROM Customer
GROUP BY personalnumber
HAVING Count(CustomerID) > 100
这是什么意思 有计数(CustomerID)> 100?是否CustomerID必须高于100?
答案 0 :(得分:2)
您已经获得了两个答案,但现在您已经编辑了您的请求而未接受其中一个。所以我猜你到目前为止还没有理解答案。
GROUP BY personalnumber
表示每个personalnumber
需要一个结果行。一个personalnumber
的所有记录都汇总到一行。
Count(CustomerID)
计算CustomerID
不为空的所有事件。
HAVING Count(CustomerID) > 100
将结果限制为具有personalnumber
的记录超过100条的CustomerID
。
由于这是Customer
表,我们必须假设CustomerID
是表的ID,唯一标识记录,并且不能为空。
所以这最好写成
HAVING Count(*) > 100
意思相同:将结果限制为超过100条记录中出现的personalnumber
。 (Count(*)
表示:计算行数。)
答案 1 :(得分:1)
这意味着personalnumber
有超过100个关联CustomerID
答案 2 :(得分:1)
这意味着查询返回的personalnumber
位于100多行,其中CustomerId
不为空。
如果代码只想计算行数,我建议:
having count(*) > 100
这不取决于色谱柱的可空性。
如果customerid
可以重复,并且您想要检查100个不同的值,那么您将使用:
having count(distinct CustomerId) > 100
如果您要对CustomerId
进行过滤,则可以在where
之前使用group by
子句。