문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/298518
문제 설명
낚시앱에서 사용하는 FISH_INFO 테이블은 잡은 물고기들의 정보를 담고 있습니다. FISH_INFO 테이블의 구조는 다음과 같으며 ID, FISH_TYPE, LENGTH, TIME은 각각 잡은 물고기의 ID, 물고기의 종류(숫자), 잡은 물고기의 길이(cm), 물고기를 잡은 날짜를 나타냅니다.
Column name | Type | Nullable |
---|---|---|
ID | INTEGER | FALSE |
FISH_TYPE | INTEGER | FALSE |
LENGTH | FLOAT | TRUE |
TIME | DATE | FALSE |
단, 잡은 물고기의 길이가 10cm 이하일 경우에는 LENGTH 가 NULL 이며, LENGTH 에 NULL 만 있는 경우는 없습니다.
FISH_NAME_INFO 테이블은 물고기의 이름에 대한 정보를 담고 있습니다. FISH_NAME_INFO 테이블의 구조는 다음과 같으며, FISH_TYPE, FISH_NAME 은 각각 물고기의 종류(숫자), 물고기의 이름(문자) 입니다.
Column name | Type | Nullable |
---|---|---|
FISH_TYPE | INTEGER | FALSE |
FISH_NAME | VARCHAR | FALSE |
문제
FISH_INFO 테이블에서 잡은 BASS와 SNAPPER의 수를 출력하는 SQL 문을 작성해주세요.
컬럼명은 'FISH_COUNT`로 해주세요.
코드
SELECT COUNT(*) AS FISH_COUNT
FROM FISH_INFO AS FI
JOIN FISH_NAME_INFO AS FNI
ON FI.FISH_TYPE = FNI.FISH_TYPE
WHERE FNI.FISH_NAME IN ('BASS', 'SNAPPER')
설명
FROM
FISH_INFO 테이블의 전체 데이터를 선택한다.
JOIN ON
FISH_INFO의 외래키 FISH_TYPE을 활용하여 INNER JOIN을 해준다.
WHERE
FISH_NAME_INFO 테이블의 물고기 이름 컬럼이 BASS거나 SNAPPER인 물고기의 데이터를 조건으로 설정한다.
SELECT
선택된 데이터를 COUNT함수를 통하여 ROW를 계산한다. 이때 문제의 조건에 따라 ALIAS를 사용하여 컬럼명을 FISH_COUNT로 출력되도록 한다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스/SQL] Lv.1 - ROOT 아이템 구하기 (0) | 2025.01.12 |
---|---|
[프로그래머스/SQL] Lv.1 - 경기도에 위치한 식품창고 목록 출력하기 (0) | 2025.01.12 |
[프로그래머스/SQL] Lv.1 - 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2025.01.12 |
[프로그래머스/SQL] Lv.1 - Python 개발자 찾기 (0) | 2025.01.11 |
[프로그래머스/SQL] Lv.2 - 3월에 태어난 여성 회원 목록 출력하기 (0) | 2025.01.11 |