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을 출력하도록 한다.
'코딩일기' 카테고리의 다른 글
알고리즘 코드카타 105 - 쿼드압축 후 개수 세기 (0) | 2024.07.02 |
---|---|
알고리즘 코트카타 - 1 ~ 5 (자바스크립트) (0) | 2024.07.01 |
알고리즘 코드카타 104 - 소수 찾기 (0) | 2024.07.01 |
SQL 코드카타 103 - Find Followers Count (0) | 2024.06.30 |
알고리즘 코드카타 103 - 가장 큰 수 (0) | 2024.06.30 |