- [프로그래머스][SQL 고득점 KIT][SELECT][Level 2] 특정 물고기를 잡은 총 수 구하기2024년 10월 21일
- 쪼시
- 작성자
- 2024.10.21.:16
반응형https://school.programmers.co.kr/learn/courses/30/lessons/298518
[프로그래머스][SQL 고득점 KIT][SELECT][Level 2] 특정 물고기를 잡은 총 수 구하기
문제 설명
낚시앱에서 사용하는 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`로 해주세요.
예시
예를 들어 FISH_INFO 테이블이 다음과 같고
* 생략 *
FISH_NAME_INFO 테이블이 다음과 같다면
* 생략 *
'BASS' 는 물고기 종류 0에 해당하고, 'SNAPPER' 는 물고기 종류 1에 해당하므로 잡은 'BASS' 와 'SNAPPER' 수는 7마리입니다.
FISH_COUNT 7
문제 풀이
- FISH_INFO 테이블에서 잡은 BASS와 SNAPPER의 수를 출력
- 컬럼명은 'FISH_COUNT`
SELECT COUNT(*) AS FISH_COUNT FROM FISH_INFO WHERE FISH_TYPE IN ( SELECT FISH_TYPE FROM FISH_NAME_INFO WHERE FISH_NAME IN ('BASS', 'SNAPPER') )
* 조건절에 서브 쿼리를 사용해서 FISH_NAME이 BASS와 SNAPPER인 FISH_TYPE을 조회해서 FISH_INFO 테이블에서 카운트
SELECT COUNT(*) AS FISH_COUNT FROM FISH_INFO F JOIN FISH_NAME_INFO N ON F.FISH_TYPE = N.FISH_TYPE WHERE N.FISH_NAME IN ('BASS', 'SNAPPER')
* 조인을 사용해서 FISH_TYPE으로 두테이블을 묶어서 FISH_NAME이 BASS와 SNAPPER인 결과를 조회
- FISH_INFO 테이블에서 잡은 BASS와 SNAPPER의 수를 출력
- 조건절을 이용해서 FISH_NAME_INFO 테이블의 FISH_NAME이 BASS와 SNAPPER인 결과를 조회
실행 결과
FISH_COUNT 7 반응형'코딩 테스트 > SQL' 카테고리의 다른 글
[프로그래머스][SQL 고득점 KIT][SELECT][Level 2] 부모의 형질을 모두 가지는 대장균 찾기 (1) 2024.10.21 [프로그래머스][SQL 고득점 KIT][SELECT][Level 1] 특정 형질을 가지는 대장균 찾기 (1) 2024.10.21 [프로그래머스][SQL 고득점 KIT][SELECT][Level 1] 가장 큰 물고기 10마리 구하기 (0) 2024.10.21 [프로그래머스][SQL 고득점 KIT][SELECT][Level 1] 잔챙이 잡은 수 구하기 (2) 2024.10.18 [프로그래머스][SQL 고득점 KIT][SELECT][Level 2] 조건에 맞는 개발자 찾기 (2) 2024.10.18 다음글이전글이전 글이 없습니다.댓글