프로그래머스 SQL 고득점 Kit - SUM, MAX, MIN
1. 최댓값 구하기
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/59415
문제 조건
1. 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
쿼리
SELECT DATETIME AS 시간 FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1;
SELECT MAX(DATETIME) AS 시간 FROM ANIMAL_INS;
풀이
1. 가장 최근에 들어온 동물은 1마리다.
2. DATETIME에 대해 역순으로 조회한 후 가장 위에 있는 1개만 조회한다.
3. 원래 문제의 취지에 맞게 MAX를 사용해서도 구할 수 있다.
. MAX(컬럼명) : 해당 컬럼에 있는 값 중 최댓값
2. 최솟값 구하기
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/59038
문제 조건
1. 동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
쿼리
SELECT DATETIME AS 시간 FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;
SELECT MIN(DATETIME) AS 시간 FROM ANIMAL_INS;
풀이
1. 가장 먼저 들어온 동물은 1마리다.
2. DATETIME에 대해 정순으로 조회한 후 가장 위에 있는 1개만 조회한다.
3. 문제의 취지에 맞게 MIN도 사용할 수 있다.
. MIN(컬럼명) : 해당 컬럼에 있는 값 중 최솟값
3. 동물 수 구하기
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/59406
문제 조건
1. 동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요.
쿼리
SELECT COUNT(*) as count FROM ANIMAL_INS;
풀이
1. 몇 마리가 들어왔는지 알기 위해 count()를 사용했다.
2. count는 용도에 따라 아래와 같이 사용한다.
. 전체 행의 수를 알고 싶을 때 : count(*)
. 특정 컬럼의 수를 알고 싶을 때 : count(컬럼명)
4. 중복 제거하기
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/59408
문제 조건
1. 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요.
2. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.
쿼리
SELECT COUNT(DISTINCT NAME) AS count FROM ANIMAL_INS
WHERE NAME IS NOT NULL;
풀이
1. 중복 제거를 위해 count를 할 때 DISTINCT 를 사용했다.
2. NULL 인 경우는 제외하기 위해 WHERE 조건에 NAME IS NOT NULL 을 사용했다.
'알고리즘 > 프로그래머스 - SQL 고득점 KIT' 카테고리의 다른 글
프로그래머스 SQL 고득점 Kit - String, Date (0) | 2021.10.15 |
---|---|
프로그래머스 SQL 고득점 Kit - JOIN (0) | 2021.10.14 |
프로그래머스 SQL 고득점 Kit - IS NULL (0) | 2021.10.13 |
프로그래머스 SQL 고득점 Kit - GROUP BY (0) | 2021.10.12 |
프로그래머스 SQL 고득점 Kit - SELECT (0) | 2021.10.10 |
댓글