2009-10-28 3 views
1

나는 아래와 같은 결과 세트를 반환하는 쿼리가 그들의 결합 분기 카운트가 NULL이기 때문에,결과에서 널 (NULL)의 그룹을 제거 설정

Quarter | Count 
    ------- | ----- 
1 Q2 2009 | NULL 
2 Q2 2009 | NULL 
3 Q2 2009 | NULL 
4 Q3 2009 | 26 
5 Q3 2009 | 27 
6 Q3 2009 | NULL 

내가 행 1-3을하지 않으을 . 그러나 같은 분기의 적어도 하나의 Count가 NULL이 아니기 때문에 행 3-6이 필요합니다.

어떻게이 일에 위의 결과 세트에서 오는가 :

Quarter | Count 
    ------- | ----- 
1 Q3 2009 | 26 
2 Q3 2009 | 27 
3 Q3 2009 | NULL 

감사합니다.

+0

은 2009 년 1 분기의 행 번호입니까? – Mikeb

+0

죄송합니다. 방금 고쳐 주셨습니다. – twh

+0

쿼리를 표시하도록 도와 주시면 쿼리 조정을 도와 드리겠습니다. –

답변

2
SELECT 
    Quarter, Count 
FROM 
    MyTable M 
WHERE 
    EXISTS (SELECT * 
     FROM MyTable m2 
     WHERE m2.Count IS NOT NULL AND m.Quarter = m2.Quarter) 
+0

감사합니다. – twh

2
SELECT * 
FROM mytable mo 
WHERE EXISTS 
     (
     SELECT NULL 
     FROM mytable mi 
     WHERE mi.quarter = mo.quarter 
       AND mi.count IS NOT NULL 
     ) 
1

당신은 집계 함수가 null 무시한다는 사실을 활용하고 같은 수행 할 수 있습니다이 존재하는 것보다 더 나은 실행 계획이있을 수 있습니다

SELECT * FROM myTable m1 inner join 
(
SELECT quarter as q2 from myTable 
GROUP BY quarter 
HAVING sum(count) is not null 
) as m2 on m1.quarter = m2.q2 

를 - 그것은하지 않을 수 있습니다.

관련 문제