코딩일기
SQL 코드카타 104 - Biggest Single Number
서재일
2024. 7. 1. 10:44
https://leetcode.com/problems/biggest-single-number/description/
Column Name | Type |
num | int |
MyNumbers 테이블:
- num (int): 임의의 정수
해당 테이블에서 가장 큰 단일숫자(한번만 나타나는 숫자)를 출력하세요.
select
num,
count(num)
from MyNumbers
group by num
먼저 각 숫자들을 그룹화한 후, 몇번이나 나타나는지 갯수를 센다.
select
M.num
from MyNumbers M join
(
select
num,
count(num) count_num
from MyNumbers
group by num
) C on M.num = C.num
where count_num = 1
위의 쿼리를 서브쿼리로 만들고 MyNumbers와 join한다. 그리고 c.count_num가 1인 목록(단일숫자)만 필터링한다.
select
M.num
from MyNumbers M join
(
select
num,
count(num) count_num
from MyNumbers
group by num
) C on M.num = C.num
where c.count_num = 1
order by M.num DESC
limit 1
M.num를 내림차순으로 정렬하고 limit 1로 가장 큰 숫자만 출력하도록 한다.
select ifnull(
(select
M.num
from MyNumbers M join
(
select
num,
count(num) count_num
from MyNumbers
group by num
) C on M.num = C.num
where c.count_num = 1
order by M.num DESC
limit 1), NUll) num
마지막으로 ifnull로 해당 구문으로 출력한 값이 없을 경우 NULL을 출력하도록 한다.