인라인 뷰안의 UNION 을 했을경우와 UNION ALL을 했을경우 데이터가 달라집니다.
이상한것은 인라인뷰 안의 쿼리는 ALL을썻을경우와 ALL을 쓰지 않았을경우
동일한데 괄호밖의 쿼리에서 WHERE ALARMID ='A' 이렇게 조건을 주면
ALL을 줬을경우
안에서 준 GROUP BY 가 풀려서 출력됩니다.
ALL을 주지 않았을경우
결과는 제대로 나옵니다.
SELECT * FROM TABLE
(
MULTISET
(
SELECT COUNT (exchange) , alarmid[1,1] , alarmdate
FROM alarmhisdata WHERE alarmid != 'S5000'
GROUP BY alarmid[1,1] , alarmdate
UNION ALL < -- 요기입니다.
SELECT COUNT (exchange) , alarmid , alarmdate
FROM alarmhisdata WHERE alarmid = 'S5000'
GROUP BY alarmid , alarmdate
)
) A
WHERE ALARMID ='A' |