这基本上是我试图实现的;在WHERE子句中有COUNT还是HAVING?
SELECT
COUNT(DISTINCT No)
FROM
Table
WHERE
(Type = 1 AND COUNT(DISTINCT No) > Num)
OR (Type = 2 AND COUNT(DISTINCT No) > Num)
GROUP BY
Week
什么是最好的方法来实现这一目标?
感谢
这基本上是我试图实现的;在WHERE子句中有COUNT还是HAVING?
SELECT
COUNT(DISTINCT No)
FROM
Table
WHERE
(Type = 1 AND COUNT(DISTINCT No) > Num)
OR (Type = 2 AND COUNT(DISTINCT No) > Num)
GROUP BY
Week
什么是最好的方法来实现这一目标?
感谢
任何骨料比较需要进入集团后,通过HAVING子句。请记住,根据放置非聚合条件的位置,您可能会得到不同的结果,因为您将通过WHERE包含/排除的内容进行聚合。
即
SELECT COUNT(DISTINCT No)
FROM Table
WHERE Type = 1
GROUP BY Week
HAVING COUNT(DISTINCT No) > Num
可以从
SELECT COUNT(DISTINCT No)
FROM Table
GROUP BY Week
HAVING COUNT(DISTINCT No) > Num
AND Type = 1
使用此:
SELECT
COUNT(DISTINCT No) as num1
FROM TableName
WHERE Type IN (1,2)
GROUP BY Week
HAVING num1 > Num
SELECT Week, Type, COUNT(DISTINCT No) WeekTally
FROM [Table]
WHERE Type in (1,2)
GROUP BY Week, Type
HAVING COUNT(DISTINCT No) > @Num
ORDER BY Week, Type;
如果你按周分组是不同的,你一定要看到这一周的计数是?
感谢您的回答。我收到一条错误消息,指出由于不包含在聚合中,所以Type在Having子句中是无效的......我是否需要将它添加到组中? – DtotheG 2013-05-10 09:06:36
哎呀,这是一个很好的观点。后者的声明将不起作用,因为类型不被分组或不是聚合。 – ludwigmace 2013-05-10 09:29:43