2017-06-13 41 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;