TIL - SQL 코드카타

오정수·2024년 3월 25일

TIL

목록 보기
5/78
post-thumbnail

오늘은 SQL 강의 5주차를 앞두고 문제들을 풀었다.
이유는 나의 코딩 능력이 어떤지 알아보기 위해서이다.



20문제를 와다다다 풀었다.
가장 최근에 문제를 푼 사람에 내 이름이 도배가 되었을 때 희열은 이루 말할 수가 없다.

이 문제들을 풀면서 알게 된 것이 3개 있다.
하나씩 알아보자.

문제는 이러했다.

정답 코드는 다음과 같다.
SELECT NAME,
COUNT(1) CNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY 1
HAVING CNT>=2
ORDER BY 1;

여기서 알게 된 것은 HAVING이다.
HAVING은 그룹에 필터링 조건을 주는 것이다.
위의 문제로 미루어 보아 CNT가 2 이상일 경우만 출력하도록 하는 것이다.

다음은 LIMIT에 대해 알아보겠다.

LIMIT는 상위 n개의 데이터를 출력하는데 사용한다.
고로 문제의 정답 코드는 다음과 같다.

SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;

다음 코드는 DATE_FORMAT이다.

정답 코드는 이랬다.

SELECT ANIMAL_ID,
NAME,
DATE_FORMAT(DATETIME, '%Y-%m-%d')
FROM ANIMAL_INS
ORDER BY 1;

이때 Y가 소문자면 연도를 두 자리 수로 출력하고 대문자면 네 자리 수로 출력한다.
M가 대문자면 영어로 표기하고 소문자일 경우 숫자로 표현한다.
D도 M과 마찬가지이다.



이외에도 1강에서 배운 LIKE의 활용 방법을 까먹어서 상기시켰다.
문제를 푸느라 강의는 내일로 미뤘다.
문제만 푸는 것도 나름 공부에 도움이 되는 거 같다.

profile
안녕하세요 오정수입니다

0개의 댓글