몸과 마음이 건전한 SW 개발자

[SQL-SELECT] 프로그래머스 Lv. 2 특정 물고기를 잡은 총 수 구하기 본문

SQL/SELECT

[SQL-SELECT] 프로그래머스 Lv. 2 특정 물고기를 잡은 총 수 구하기

스위태니 2024. 12. 18. 17:43

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/298518

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

정답 코드

SELECT COUNT(*) AS FISH_COUNT
FROM FISH_INFO
WHERE FISH_TYPE = (SELECT FISH_TYPE 
                   FROM FISH_NAME_INFO 
                   WHERE FISH_NAME = 'BASS')
  OR FISH_TYPE = (SELECT FISH_TYPE
                  FROM FISH_NAME_INFO
                  WHERE FISH_NAME = "SNAPPER");

풀이 과정

  1. SELECT COUNT(*)
    1. COUNT(*)는 조건에 맞는 행의 총 개수를 계산한다.
    2. 결과 컬럼명은 FISH_COUNT로 지정된다.
  2. WHERE 절
    1. 조건으로 FISH_TYPE 컬럼이 다음 두 값 중 하나인 데이터를 필터링한다:
      1. FISH_TYPE이 'BASS'에 해당
        • (SELECT FISH_TYPE FROM FISH_NAME_INFO WHERE FISH_NAME = 'BASS')
        • FISH_NAME_INFO 테이블에서 FISH_NAME이 'BASS'인 행의 FISH_TYPE 값을 가져온다.
      2. FISH_TYPE이 'SNAPPER'에 해당
        • (SELECT FISH_TYPE FROM FISH_NAME_INFO WHERE FISH_NAME = 'SNAPPER')
        • FISH_NAME_INFO 테이블에서 FISH_NAME이 'SNAPPER'인 행의 FISH_TYPE 값을 가져온다.
    2. OR 조건:
      • 두 서브쿼리 중 하나라도 참이면 해당 행이 선택된다.

느낀점

  • 쿼리를 출력하기 위해 서브쿼리를 이용?하는 이런 문제는 자주 풀어봐야겠다.
  • 직전 문제가 딱 이런 문제여서 다시 풀어 보면 좋다.
  • https://sound-programming.tistory.com/398
 

[SQL-SELECT] 프로그래머스 Lv. 2 조건에 맞는 개발자 찾기 [다시 풀어 보기]

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/276034 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr틀린 코드SELEC

sound-programming.tistory.com