2017-06-13 40 views
0
disposition uniqueid 
ANSWERED  1497366029.125604 
NO ANSWER  1497366029.125604 
NO ANSWER  1497366029.125604 
NO ANSWER  1497368123.126371 
NO ANSWER  1497368123.126371 
ANSWERED  1497368123.126371 
NO ANSWER  1497369528.126781 
NO ANSWER  1497369528.126781 
NO ANSWER  1497369528.126781 

SELECT disposition, uniqueid 
FROM cdr 
GROUP BY disposition,uniqueid 

我只想返回'没有答案'的分组行,任何具有1个或更多非'无答案'处置的uniqueid应该被忽略。带附加过滤器的GROUP BY

在这个例子中,我试图返回单行

NO ANSWER  1497369528.126781 

我怎么能这样做?

感谢

回答

0

一种方法是

SELECT MAX(disposition) AS disposition, 
     uniqueid 
FROM cdr 
GROUP BY uniqueid 
HAVING SUM(CASE WHEN disposition = 'NO ANSWER' THEN 0 ELSE 1 END) = 0 

你也可以做

SELECT uniqueid 
FROM cdr 
WHERE disposition = 'NO ANSWER' 
EXCEPT 
SELECT uniqueid 
FROM cdr 
WHERE disposition IS NULL OR disposition <> 'NO ANSWER' 
0

使用尝试这种方式 '具有'

select * 
from [cdr] 
Where disposition='NO ANSWER' 
group by disposition,uniqueid 
having count(uniqueid) <=1;