잔챙이 잡은 수 구하기 (with.MySQL)
잔챙이 잡은 수 구하기 (with.MySQL) 에 대하여 알아본 글입니다.
코딩 테스트 문제를 풀며, 풀었던 문제에 대한 회고와 다른 풀이 방법을 알아보며, 알아가고자 합니다.
문제에 대해 먼저 알아보겠습니다.
문제
잡은 물고기 중 길이가 10cm 이하인 물고기의 수를 출력하는 SQL 문을 작성해주세요.
물고기의 수를 나타내는 컬럼 명은 FISH_COUNT로 해주세요.
문제설명
낚시앱에서 사용하는 FISH_INFO 테이블은 잡은 물고기들의 정보를 담고 있습니다.
FISH_INFO 테이블의 구조는 다음과 같으며 ID, FISH_TYPE, LENGTH, TIME은 각각 잡은 물고기의 ID, 물고기의 종류(숫자), 잡은 물고기의 길이(cm), 물고기를 잡은 날짜를 나타냅니다.
FISH_INFO 테이블
Column name | Type | Nullable |
---|---|---|
ID | INTEGER | FALSE |
FISH_TYPE | INTEGER | FALSE |
LENGTH | FLOAT | TRUE |
TIME | DATE | FALSE |
단, 잡은 물고기의 길이가 10cm 이하일 경우에는 LENGTH 가 NULL 이며, LENGTH 에 NULL 만 있는 경우는 없습니다.
문제 풀이
SELECT COUNT(*) AS FISH_COUNT
FROM FISH_INFO
WHERE LENGTH <= 10 OR LENGTH IS NULL;
풀이 설명
이 SQL 쿼리는 특정 조건에 해당하는 물고기의 개수를 계산하여 반환합니다.
쿼리는 FISH_INFO 테이블에서 데이터를 추출하며, 주요 구성 요소는 다음과 같습니다.
먼저 SELECT 절에서는 조회할 값을 지정합니다.
COUNT(*) AS FISH_COUNT는 조건을 만족하는 레코드(즉, 물고기)의 개수를 계산하여 FISH_COUNT라는 별칭으로 결과를 출력합니다.
이는 조건에 맞는 물고기의 총 수를 의미합니다.
이어서 FROM 절에서는 쿼리를 실행할 기본 테이블을 지정합니다.
이 경우 FISH_INFO 테이블이 사용됩니다.
다음으로 WHERE 절에서는 특정 조건을 설정하여 필요한 데이터를 필터링합니다.
조건인 LENGTH IS NULL은 길이 정보가 없는, 즉 값이 NULL인 물고기를 선택합니다.
이 쿼리를 통해 길이가 10 이하 물고기의 총 수를 계산하여 FISH_COUNT로 반환합니다.