호기심 많은 분석가
[MySQL] 프로그래머스 Coding_Test / SUM, MAX, MIN 본문
포스팅 개요
SQL 문법과 익숙해지고자 프로그래머스의 SQL Coding Test 문제들을 풀어봄. 그중 SUM, MAX, MIN 파트의 문제들을 기록해두었습니다. 그 전 문제들은 2021.05.06 - [Coding Test & Algorithm] - [SQL] 프로그래머스 Coding_Test SELECT (2) 포스팅에서 확인할 수 있습니다.
포스팅 본문
아래의 문제들은 모두 동일한 TABLE을 기준으로 문제가 주어졌습니다.
TABLE 설명
1. 최댓값 구하기
가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
SELECT MAX(AI.DATETIME) FROM ANIMAL_INS AS AI;
SELECT AI.DATETIME FROM ANIMAL_INS AS AI
ORDER BY AI.DATETIME DESC LIMIT 1;
두 가지의 방법을 사용했습니다.
- DATETIME의 최댓값 추출
- 앞 파트의 문제와 비슷하게 DATETIME을 내림차순으로 정렬한 뒤 제일 위의 DATA를 추출했음.
2. 최솟값 구하기
동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
SELECT MIN(DATETIME) FROM ANIMAL_INS
최댓값을 MAX를 통해 구했으므로, 최솟값은 간단하게 MIN을 통해 구할 수 있다.
3. 동물 수 구하기
동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요.
SELECT COUNT(ANIMAL_TYPE) FROM ANIMAL_INS
행의 개수를 세기 위해서는 COUNT 함수를 사용합니다. COUNT 함수 사용 시 주의해야 할 점은 COUNT(COLUMN)은 NULL인 데이터를 제외하고 계산한다는 것입니다. NULL 데이터 포함 전체 행 개수를 셀 때는 COUNT(*)를 사용해주면 됩니다.
4. 중복 제거하기
동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.
SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS
DISTINCT로 중복을 제외해주면서 COUNT로 NULL 값을 제외시켜줌. 이렇게 작성은 처음해봤는데 해결돼서 흥미로웠다.
이상으로 SQL 중 SUM, MAX, MIN 파트를 배워보았습니다. 다음 GROUP BY에서 만나뵙겠습니다. :)
'Coding > Coding Test & Algorithm' 카테고리의 다른 글
[MySQL] 프로그래머스 Coding_Test / GROUP BY (2) (0) | 2021.05.06 |
---|---|
[MySQL] 프로그래머스 Coding_Test / GROUP BY (1) (0) | 2021.05.06 |
[MySQL] 프로그래머스 Coding_Test / SELECT (2) (0) | 2021.05.06 |
[MySQL] 프로그래머스 Coding_Test / SELECT (1) (0) | 2021.05.06 |
[SQL] SQL과 친숙해지기 (1) (0) | 2021.05.05 |