Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在WHERE子句中计数还是有?_Sql_Sql Server 2008 R2 - Fatal编程技术网

Sql 在WHERE子句中计数还是有?

Sql 在WHERE子句中计数还是有?,sql,sql-server-2008-r2,Sql,Sql Server 2008 R2,这基本上就是我想要达到的目标 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 实现这一目标的最佳方式是什么 谢谢 这是可能的答案。使用以下选项: SELECT COUNT(DISTINCT No) as num1 FROM TableNa

这基本上就是我想要达到的目标

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
实现这一目标的最佳方式是什么

谢谢

这是可能的答案。

使用以下选项:

SELECT 
COUNT(DISTINCT No) as num1
FROM TableName
WHERE Type IN (1,2)  
GROUP BY Week
HAVING num1 > Num

任何聚合比较都需要在Group By后面的HAVING子句中进行。请记住,根据您将非聚合条件放在何处,您可能会得到不同的结果,因为您将通过where聚合包含/排除的内容

可能不同于

SELECT COUNT(DISTINCT No) 
FROM Table 
GROUP BY Week
HAVING COUNT(DISTINCT No) > Num
AND Type = 1

如果你是按周分组,你肯定想知道计数是针对哪一周的

谢谢你的回答。我收到一条错误消息,说类型在Having子句中无效,因为它不包含在聚合中。。。我需要把它添加到组中吗?哦,这是一个很好的观点。后一条语句将不起作用,因为类型未按分组或它不是聚合。
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 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;