SELECT num
FROM MyNumbers
GROUP BY num
HAVING COUNT(num) = 1
ORDER BY num DESC
LIMIT 1
위와 같은 방법으로는 having으로 필터링 후 도출되는 값이 없을 때, null이 아닌 빈 테이블이 출력됨
이럴 때, 테이블을 감싼 후 select로 다시 출력하면 빈테이블이 null 값으로 출력됨
SELECT (SELECT num
FROM MyNumbers
GROUP BY num
HAVING COUNT(num) = 1
ORDER BY num DESC
LIMIT 1) AS num
가장 빠른 결과
With cte AS(
SELECT num
FROM MyNumbers
GROUP BY num
HAVING COUNT(num)=1
)
SELECT MAX(num) as num
FROM cte
cte로 도출되는 값이 없으면, null 출력
'언어' 카테고리의 다른 글
union, union all (0) | 2024.07.26 |
---|---|
lead (0) | 2024.07.26 |
누계 거리 순 (0) | 2024.07.18 |
case when -> having (0) | 2024.07.15 |
중복 제거 (0) | 2024.07.12 |