[SQL] 한 해에 잡은 물고기 수 구하기

Ray·2025년 3월 5일
0

SQL

목록 보기
10/19

🔎 문제설명

  • 출처: 프로그래머스
  • 사용언어(RDBMS): SQL(MySQL)
  • 문제:

    FISH_INFO 테이블에서 2021년도에 잡은 물고기 수를 출력하는 SQL 문을 작성해주세요. 이 때 컬럼명은 'FISH_COUNT' 로 지정해주세요.




✅ 제출답안

  • 두가지 방법으로 풀어보았다.
# FISH_INFO 테이블에서 2021년도에 잡은 물고기 수를 출력
# 이 때 컬럼명은 'FISH_COUNT' 로 지정

## 답안1 ##
SELECT COUNT(ID) AS FISH_COUNT
FROM FISH_INFO
WHERE YEAR(TIME) = '2021'

## 답안2 ##
SELECT SUM(FISH_TYPE) AS FISH_COUNT
FROM FISH_INFO
WHERE CAST(TIME AS CHAR) LIKE '2021%'



🚀 풀이기록

두 가지 방법으로 풀었다. 첫번째는 datetime형인 컬럼 time에서 년도만 추출해 그것이 2021과 같은지 확인하는 방식으로 쿼리문을 작성했다. 두번째는 어제 문제풀면서 배운 CAST()를 사용해 TIME의 데이터타입을 datetime에서 char으로 변환해주었다. 문제를 푼지 한 달이 다 된 지금에서야 알아챈 사실이지만, 굳이 TIME속성을 형변환시키지 않고 LIKE연산자를 사용해도 정상실행되었다. 그 땐 왜 그랬을까?

# CAST()안써도 된다.
SELECT COUNT(ID) AS FISH_COUNT
FROM FISH_INFO
WHERE TIME LIKE '2021%'

+처음에 답안을 제출했을 때, 오답처리가 되었는데 다시 확인해봤더니 FISH_TYPE을 잡은 물고기 수라고 착각해서 틀렸다. 앞으로 문제를 제대로 읽어야겠다.

profile
미래의 독자인 나를 위해 글을 씁니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN