소피it블로그

[SQL] 프로그래머스 SQL 고득점 Kit - SUM, MAX, MIN (MySQL) 본문

CS/데이터베이스

[SQL] 프로그래머스 SQL 고득점 Kit - SUM, MAX, MIN (MySQL)

sophie_l 2022. 11. 4. 21:35

https://school.programmers.co.kr/learn/courses/30/parts/17043

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1. 가장 비싼 상품 구하기

SELECT PRICE AS MAX_PRICE
FROM PRODUCT
ORDER BY PRICE DESC
LIMIT 1

2. 가격이 제일 비싼 식품의 정보 출력하기

-- 코드 1
SELECT *
FROM FOOD_PRODUCT
WHERE PRICE IN (SELECT MAX(PRICE) FROM FOOD_PRODUCT)

-- 코드 2
SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1

ORDER BY, LIMIT 대신 WHERE절 내의 SELECT절에서 MAX로 구해줄 수도 있다.

 

3. 최댓값 구하기

SELECT MAX(DATETIME) 시간
FROM ANIMAL_INS

4. 최솟값 구하기

SELECT MIN(DATETIME) 시간
FROM ANIMAL_INS

5. 동물 수 구하기

SELECT COUNT(*)
FROM ANIMAL_INS

6. 중복 제거하기

SELECT COUNT(NAME) count
FROM (SELECT NAME FROM ANIMAL_INS GROUP BY NAME) AS A
WHERE NAME IS NOT NULL

-- 다른 코드
SELECT COUNT(DISTINCT NAME) count
FROM ANIMAL_INS
WHERE NAME IS NOT NULL

FROM절이 복잡해서 좀 헤맸다.

혹은 DISTINCT를 사용해서 더 쉽게 풀 수도 있다.