📑 1. 루시와 엘라 찾기

⭐ 정답코드
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty')
📑 2. 한 해에 잡은 물고기수 구하기

⭐ 정답코드
COUNT(ID)에 `FISH_COUNT` 라는 별칭을 주어야 함
문제 예시에서 DATE 형식이 'YYYY/MM/DD'로 되어 있는 걸 보고 약간 복잡하게 풀었다.
SELECT COUNT(ID) AS FISH_COUNT
FROM FISH_INFO
WHERE DATE_FORMAT(Time, '%Y/%m/%d') LIKE '2021%'
다른 사람들이 풀이한 것을 확인했는데 더 간단하게 쿼리를 작성할 수 있다.
이 문제는 날짜 형식의 데이터를 출력하는게 아니고 2021년에 잡은 물고기 수를 카운트해서 숫자만 반환하는 문제이기 때문에 데이터포매팅이 필요 없다. 월,일을 제외하고 연도부분만 추출해서 '2021'과 일치하는 값만 찾으면 되는 쉬운 문제이다.
SELECT COUNT(ID) FISH_COUNT
FROM FISH_INFO
WHERE YEAR(TIME) = '2021'
SELECT COUNT(*) AS FISH_COUNT
FROM FISH_INFO
WHERE SUBSTR(TIME,1,4) = '2021'
📑 3. DATETIME에서 DATE로 형 변환

⭐ 정답코드
MySQL 에서는 시스템 날짜를 특정 형식으로 변환하고 싶을 때 DATE_FORMAT 함수를 쓴다.
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-%m-%d') AS 날짜
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
MySQL 에서 DATE_FORMAT 함수 쓸 때 지정자가 중요하다.
DATE_FORMAT(date, format)
- date: 변환할 날짜나 시간 값.
- format: 원하는 출력 형식을 지정하는 문자열.
지정자 | 설명 | 결과 |
%Y | 4자리 연도 | 2025 |
%y | 2자리 연도 | 25 |
%m | 2자리 월 (01 ~ 12) | 01 |
%c | 1자리 또는 2자리 월 (1 ~ 12) | 1 |
%d | 2자리 일 (01 ~ 31) | 21 |
%e | 1자리 또는 2자리 일 (1 ~ 31) | |
%H | 24시간 형식의 2자리 시간 (00 ~ 23) | 14 |
%h | 12시간 형식의 2자리 시간 (01 ~ 12) | 02 |
%i | 2자리 분 (00 ~ 59) | 45 |
%s | 2자리 초 (00 ~ 59) | 30 |
📌 TMI
Oracle에서는 DATE_FORMAT() 대신 TO_CHAT() 함수 씀
TO_CHAR(date, 'format')
오라클의 형식 지정자 (출처 chat GPT)

'코딩테스트 > SQL테스트' 카테고리의 다른 글
[프로그래머스] (MySQL) 카테고리 별 상품 개수 구하기 (6) | 2025.01.21 |
---|---|
[프로그래머스] (MySQL) 분기별 분화된 대장균의 개체 수 구하기 (11) | 2025.01.21 |
[프로그래머스] (MySQL) 조건에 맞는 사용자 정보 조회하기 (12) | 2025.01.20 |
[프로그래머스] (MySQL) 대여 기록이 존재하는 자동차 리스트 구하기 (11) | 2025.01.19 |
[프로그래머스] (MySQL) 조건별로 분류하여 주문상태 출력하기 (9) | 2025.01.18 |
📑 1. 루시와 엘라 찾기

⭐ 정답코드
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty')
📑 2. 한 해에 잡은 물고기수 구하기

⭐ 정답코드
COUNT(ID)에 FISH_COUNT
라는 별칭을 주어야 함
문제 예시에서 DATE 형식이 'YYYY/MM/DD'로 되어 있는 걸 보고 약간 복잡하게 풀었다.
SELECT COUNT(ID) AS FISH_COUNT FROM FISH_INFO WHERE DATE_FORMAT(Time, '%Y/%m/%d') LIKE '2021%'
다른 사람들이 풀이한 것을 확인했는데 더 간단하게 쿼리를 작성할 수 있다.
이 문제는 날짜 형식의 데이터를 출력하는게 아니고 2021년에 잡은 물고기 수를 카운트해서 숫자만 반환하는 문제이기 때문에 데이터포매팅이 필요 없다. 월,일을 제외하고 연도부분만 추출해서 '2021'과 일치하는 값만 찾으면 되는 쉬운 문제이다.
SELECT COUNT(ID) FISH_COUNT FROM FISH_INFO WHERE YEAR(TIME) = '2021'
SELECT COUNT(*) AS FISH_COUNT FROM FISH_INFO WHERE SUBSTR(TIME,1,4) = '2021'
📑 3. DATETIME에서 DATE로 형 변환

⭐ 정답코드
MySQL 에서는 시스템 날짜를 특정 형식으로 변환하고 싶을 때 DATE_FORMAT 함수를 쓴다.
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-%m-%d') AS 날짜 FROM ANIMAL_INS ORDER BY ANIMAL_ID;
MySQL 에서 DATE_FORMAT 함수 쓸 때 지정자가 중요하다.
DATE_FORMAT(date, format)
- date: 변환할 날짜나 시간 값.
- format: 원하는 출력 형식을 지정하는 문자열.
지정자 | 설명 | 결과 |
%Y | 4자리 연도 | 2025 |
%y | 2자리 연도 | 25 |
%m | 2자리 월 (01 ~ 12) | 01 |
%c | 1자리 또는 2자리 월 (1 ~ 12) | 1 |
%d | 2자리 일 (01 ~ 31) | 21 |
%e | 1자리 또는 2자리 일 (1 ~ 31) | |
%H | 24시간 형식의 2자리 시간 (00 ~ 23) | 14 |
%h | 12시간 형식의 2자리 시간 (01 ~ 12) | 02 |
%i | 2자리 분 (00 ~ 59) | 45 |
%s | 2자리 초 (00 ~ 59) | 30 |
📌 TMI
Oracle에서는 DATE_FORMAT() 대신 TO_CHAT() 함수 씀
TO_CHAR(date, 'format')
오라클의 형식 지정자 (출처 chat GPT)

'코딩테스트 > SQL테스트' 카테고리의 다른 글
[프로그래머스] (MySQL) 카테고리 별 상품 개수 구하기 (6) | 2025.01.21 |
---|---|
[프로그래머스] (MySQL) 분기별 분화된 대장균의 개체 수 구하기 (11) | 2025.01.21 |
[프로그래머스] (MySQL) 조건에 맞는 사용자 정보 조회하기 (12) | 2025.01.20 |
[프로그래머스] (MySQL) 대여 기록이 존재하는 자동차 리스트 구하기 (11) | 2025.01.19 |
[프로그래머스] (MySQL) 조건별로 분류하여 주문상태 출력하기 (9) | 2025.01.18 |