我已经被困了很长一段时间,试图让这个查询起作用。 这是设置:
我有一个 [Notes] 表,其中包含一个非唯一(数字)列和一个非唯一(结果)列。我希望创建一个 SELECT 语句,该语句将显示每个不同的 (Number) 值,其中 {(Number), (Result)} 元组的计数,其中 Result = 'NA' 大于 25。
Number | Result
100 | 'NA'
100 | 'TT'
101 | 'NA'
102 | 'AM'
100 | 'TT'
200 | 'NA'
200 | 'NA'
201 | 'NA'
基本上,有一个自动拨号器可以调用一个号码并根据调用结果返回一个代码。我们想忽略返回“NA”(无应答)代码超过 25 次的号码。
到目前为止,我的基本尝试类似于:
SELECT DISTINCT n1.Number
FROM Notes n1
WHERE (SELECT COUNT(*) FROM Notes n2
WHERE n1.Number = n2.Number and n1.Result = 'NA') > 25
我知道这个查询不正确,但通常我不确定如何将初始选择中的 DISTINCT n1.Number 与子查询 COUNT 中使用的 Number 相关联。我看到的大多数示例实际上并不是通过向返回的 COUNT 添加条件来实现的。在过去的五年里,我没有接触过太多的 SQL,所以我很生疏。
最佳答案
你可以这样做:
SELECT Number
FROM Notes
WHERE Result = 'NA'
GROUP BY Number
HAVING COUNT(Result) > 25
关于SQL 查询帮助 : Returning distinct values from Count subquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3994205/