https://school.programmers.co.kr/learn/courses/30/lessons/298518
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
낚시앱에서 사용하는 FISH_INFO 테이블은 잡은 물고기들의 정보를 담고 있습니다. FISH_INFO 테이블의 구조는 다음과 같으며 ID, FISH_TYPE, LENGTH, TIME은 각각 잡은 물고기의 ID, 물고기의 종류(숫자), 잡은 물고기의 길이(cm), 물고기를 잡은 날짜를 나타냅니다.

단, 잡은 물고기의 길이가 10cm 이하일 경우에는 LENGTH 가 NULL 이며, LENGTH 에 NULL 만 있는 경우는 없습니다.
FISH_NAME_INFO 테이블은 물고기의 이름에 대한 정보를 담고 있습니다. FISH_NAME_INFO 테이블의 구조는 다음과 같으며, FISH_TYPE, FISH_NAME 은 각각 물고기의 종류(숫자), 물고기의 이름(문자) 입니다.

문제
FISH_INFO 테이블에서 잡은 BASS와 SNAPPER의 수를 출력하는 SQL 문을 작성해주세요.
컬럼명은 'FISH_COUNT`로 해주세요.
문제 접근
1. 수를 세라고 했으니까 count
2. 두 테이블 left join한 후 bass이거나 snapper일 때 걸리게 조건 걸기
최종 코드
SELECT COUNT(*) AS FISH_COUNT
FROM fish_info AS a
LEFT JOIN fish_name_info AS b ON a.fish_type=b.fish_type
WHERE fish_name IN ('BASS', 'SNAPPER')
→ pandas 만지다보니 left join이 익숙해져서 outer join을 했는데, inner join으로 하든 뭐든 이 문제는 상관 X
→ 애초에 fish_name이라는 조건을 거는 순간, null값이 포함될 수 없으므로 '물고기 수'만 구하면 된다고 봤을 때, inner join이 더 적절하다고 생각
'SQL > 프로그래머스·HackerRank·Leetcode' 카테고리의 다른 글
| 프로그래머스 SQL - 조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2025.09.23 |
|---|---|
| 프로그래머스 SQL - 대장균들의 자식의 수 구하기 (0) | 2025.09.22 |
| HackerRank SQL 3문제 풀이 (3) (0) | 2025.02.04 |
| 프로그래머스 SQL - 조건에 맞는 사원 정보 조회하기 (0) | 2025.01.28 |
| HackerRank SQL 4문제 풀이 (2) (0) | 2025.01.26 |