본문 바로가기

SQL Kit/STRING, DATE

한 해에 잡은 물고기 수 구하기 [ 프로그래머스 | SQL Kit | Level 1 ]

1. 문제 목적

날짜 데이터에서 연도를 추출하여 특정 연도에 해당하는 데이터를 필터링하고 COUNT 함수로 조건에 맞는 행의 개수를 계산하는 기술을 익히는 데 목적이 있습니다.


2. 핵심 개념

2.1 WHERE 절

  • 정의: 특정 조건에 맞는 데이터를 필터링하는 데 사용됩니다.
SELECT 열이름
FROM 테이블이름
WHERE 조건;
  • 예: WHERE YEAR(TIME) = 2021는 TIME 열에서 연도가 2021인 데이터를 필터링합니다.

2.2 YEAR 함수

  • 정의: 날짜 데이터에서 연도 값을 추출하는 함수입니다.
SELECT YEAR('2021-12-04'); -- 결과: 2021
  • 날짜 열에서 연도를 추출해 조건으로 사용할 수 있습니다.

2.3 COUNT 함수

  • 정의: 조건에 맞는 데이터의 행 개수를 반환합니다.
SELECT COUNT(*) AS FISH_COUNT
FROM 테이블이름
WHERE 조건;
  • COUNT(*): 조건에 맞는 모든 행의 개수를 계산합니다.

2.4 집계 함수와 별칭(AS)

  • 정의: 집계 함수의 결과에 별칭을 부여하여 결과 열 이름을 지정할 수 있습니다.
SELECT COUNT(*) AS FISH_COUNT

3. 문제 해결 절차

  1. 문제 이해:
    • 2021년에 잡힌 물고기의 개수를 구해야 합니다.
    • 물고기의 데이터는 날짜 열(TIME)을 통해 연도를 구분할 수 있습니다.
  2. 필터링:
    • 날짜 열(TIME)에서 YEAR 함수를 사용해 연도를 추출하고, 2021년인 데이터를 필터링합니다.
  3. 데이터 개수 계산:
    • COUNT 함수를 사용해 필터링된 데이터의 행 개수를 계산합니다.
  4. 별칭 부여:
    • 결과 열 이름을 FISH_COUNT로 지정합니다.
  5. SQL 작성 및 실행:
    • 조건과 집계 함수를 포함한 SQL문을 작성하고 실행하여 결과를 반환합니다.

4. 코드 작성

sql
코드 복사
-- 1. 조건에 따라 물고기 개수를 집계
SELECT
  COUNT(*) AS FISH_COUNT -- 조건에 맞는 물고기 개수를 반환하며 열 이름을 FISH_COUNT로 지정
FROM
  FISH_INFO -- 데이터를 가져올 테이블
WHERE
  YEAR(TIME) = 2021; -- TIME 열에서 연도를 추출해 2021년 데이터를 필터링

주석 설명:

  1. COUNT(*) AS FISH_COUNT:
    • 조건에 맞는 모든 행의 개수를 계산하고, 결과 열 이름을 FISH_COUNT로 지정합니다.
  2. FROM FISH_INFO:
    • 데이터를 검색할 테이블을 지정합니다.
  3. WHERE YEAR(TIME) = 2021:
    • 날짜 열에서 연도를 추출하여 2021년인 데이터를 필터링합니다.

5. 코드 분석

COUNT(*)

  • 조건에 맞는 모든 행의 개수를 반환합니다.
  • 는 테이블의 모든 열을 포함해 행의 개수를 계산합니다.

WHERE YEAR(TIME) = 2021

  • 날짜 열(TIME)에서 YEAR 함수로 연도를 추출하여 2021년인 데이터만 필터링합니다.

결과 열 이름 지정

  • AS FISH_COUNT를 사용하여 결과 열 이름을 FISH_COUNT로 지정합니다.