MySQL 리트코드 | Biggest Single Number (WHERE절, FROM절 서브쿼리)

728x90

 

문제

https://leetcode.com/problems/biggest-single-number/description/?envType=study-plan-v2&envId=top-sql-50

  • MyNumbers 테이블에서 한 번만 등장하는 숫자 중 가장 큰 숫자 찾기
  • 만약 한 번만 등장하는 숫자가 없으면 null로 표시하기

 

테이블

MyNumbers num
8
8
3
3
1
4
5
6
  • 한 번만 등장하는 숫자 : 1, 4, 5, 6
    • 이 중에 가장 큰 숫자 : 6

 

풀이과정

▶ WHERE절 IN함수 내 서브쿼리 활용

# 한 번만 등장하는 숫자 구하기

  • WHERE 조건절에 IN() 함수 및 서브쿼리 활용 
    • num 별로 그룹화했을 때 COUNT 값이 1인 경우만 추출 

 

# 그 중 가장 큰 숫자 구하기

    • WHERE 조건절로 만들어진 (한 번만 등장하는 숫자로만 이루어진) 테이블에서 MAX인 값 조회하기

 

# 정답

1
2
3
SELECT MAX(num) num
FROM MyNumbers
WHERE num IN(SELECT num FROM MyNumbers GROUP BY num HAVING COUNT(num)=1)
cs

 

다른 사람 풀이 참고

▶ FROM절 서브쿼리 활용

# 한 번만 등장하는 숫자 테이블 만들기

  • FROM절에 서브쿼리로 (한 번만 등장하는 숫자로 이루어진) 테이블 만들기 
    • num 별로 그룹화했을 때 COUNT 값이 1인 경우만 추출 

 

# 그 중 가장 큰 숫자 구하기

    • FROM절 테이블에서 MAX인 값 조회하기

 

# 정답

1
2
3
4
5
6
7
SELECT MAX(num) AS num
FROM (
    SELECT num
    FROM MyNumbers
    GROUP BY num
    HAVING COUNT(num) = 1
) AS unique_numbers;
cs

 

 

 

728x90

댓글