숑숑이의 개발일기

문제 링크

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), 물고기를 잡은 날짜를 나타냅니다.

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로 출력되도록 한다.

profile

숑숑이의 개발일기

@숑숑-

풀스택 개발자 준비중입니다