728x90
동명 동물 수 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/59041
동물의 중복되는 이름과 그 개수를찾는 문제이다.
중복되는 이름의 개수를 어떻게 세면 좋을지 몰라 처음에 어렵게 느껴졌다.
Order by로 이름으로 그룹화해서 각 그룸 내에서 count를 이용해줌으로써 해결할 수 있다.
코드
SELECT
NAME,
COUNT(NAME) AS COUNT
FROM
ANIMAL_INS
GROUP BY
NAME
HAVING
COUNT(NAME) > 1
ORDER BY
NAME
NULL 처리하기
https://school.programmers.co.kr/learn/courses/30/lessons/59410
데이터 필드가 null인 경우 다른 값을 넣어줘야 하는 문제이다.
sql 문법에 대해 잘 알지 못해서 검색하여 ISNULL을 사용할 수 있다는 것을 알게 되었다.
SELECT
ANIMAL_TYPE,
IFNULL(NAME, 'No name'),
SEX_UPON_INTAKE
FROM
ANIMAL_INS
그런데 CASE문과 COALESCE도 NULL 값을 다루기 위해 사용할 수 있다는 것을 알게 되었다.
- CASE문: 특정 경우에 따라 다른 결과를 반환하고자 하는 경우
- IFNULL: 두 개의 파라미터를 사용
- COALESCE: 여러 개의 파라미터를 사용 가능
- 표준 SQL 함수이므로 다양한 RDBS에서 사용이 가능하다!
SELECT
ANIMAL_TYPE,
COALESCE (NAME, 'No name'),
SEX_UPON_INTAKE
FROM
ANIMAL_INS
DATETIME에서 DATE로 형 변환
https://school.programmers.co.kr/learn/courses/30/lessons/59414
날짜와 시간이 있는 DATETIME에서 DATE로 형 변환하여 출력하는 문제이다.
SELECT
ANIMAL_ID,
NAME,
LEFT(DATETIME, 10)
FROM
ANIMAL_INS
ORDER BY
ANIMAL_ID
나는 위와 같이 LEFT를 이용하여 풀었는데 이 경우에 사용할 수 있는 DATE_FORMAT 함수가 있다.
SELECT
ANIMAL_ID,
NAME,
DATE_FORMAT(DATETIME, '%Y-%m-%d')
FROM
ANIMAL_INS
ORDER BY
ANIMAL_ID
'TIL' 카테고리의 다른 글
[231219] QueryDSL, JPQL (0) | 2023.12.19 |
---|---|
[231218] 이진트리, 힙 (0) | 2023.12.18 |
[231211] Spring 심화 개인 과제 피드백 (0) | 2023.12.11 |
[231207] 심화 주차 조별 과제 (1) | 2023.12.07 |
[231206] 프로그래머스 피로도 (Java) (0) | 2023.12.06 |