✔ SUM, MAX, MIN
가장 비싼 상품 구하기
[프로그래머스 131697]
/*
SELECT : 가장 높은 판매가
FROM : PRODUCT 테이블
*/
SELECT MAX(PRICE) AS MAX_PRICE
FROM PRODUCT
가격이 제일 비싼 식품의 정보 출력하기
[프로그래머스 131115]
- 서브쿼리 : 하나의 SQL 문 안에 있는 또 다른 SQL문
- LIMIT : 결과에서 몇 개의 행을 반환할 것인지 제한
/*
SELECT : 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격
FROM : FOOD_PRODUCT 테이블
WEHRE : 가격이 제일 비싼 식품
*/
SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE)
FROM FOOD_PRODUCT)
SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1
최댓값 구하기
[프로그래머스 59415]
/*
SELECT : 보호 시작일
FROM : ANIMAL_INS 테이블
WEHRE : 가장 최근에 들어온 동물
*/
SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS
SELECT DATETIME AS 시간
FROM ANIMAL_INS
WHERE DATETIME = (SELECT MAX(DATETIME)
FROM ANIMAL_INS)
SELECT DATETIME AS 시간
FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1
최솟값 구하기
[프로그래머스 59038]
/*
SELECT : 보호 시작일
FROM : ANIMAL_INS 테이블
WEHRE : 가장 먼저 들어온 동물
*/
SELECT MIN(DATETIME) AS 시간
FROM ANIMAL_INS
SELECT DATETIME AS 시간
FROM ANIMAL_INS
WHERE DATETIME = (SELECT MIN(DATETIME)
FROM ANIMAL_INS)
SELECT DATETIME AS 시간
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1
동물 수 구하기
[프로그래머스 59406]
/*
SELECT : 동물 보호소의 동물 수
FROM : ANIMAL_INS 테이블
*/
SELECT COUNT(*) AS count
FROM ANIMAL_INS
중복 제거하기
[프로그래머스 59408]
- DISTINCT 컬럼 : 특정 컬럼의 유니크한 값을 조회, 중복된 결과를 제거
/*
SELECT : 동물의 이름 개수(중복되는 이름은 하나로 침)
FROM : ANIMAL_INS 테이블
WHERE : 이름이 NULL이 아닌 경우
*/
SELECT COUNT(DISTINCT NAME) AS count
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
조건에 맞는 아이템들의 가격의 총합 구하기
[프로그래머스 273709]
/*
SELECT : 가격의 총합
FROM : ITEM_INFO 테이블
WHERE : 희귀도가 'LEGEND'인 아이템들
*/
SELECT SUM(PRICE) AS TOTAL_PRICE
FROM ITEM_INFO
WHERE RARITY = 'LEGEND'
물고기 종류 별 대어 찾기
[프로그래머스 293261]
/*
SELECT : 물고기의 ID, 물고기 이름, 길이
FROM : FISH_INFO, FISH_NAME_INFO 테이블
WHERE : 물고기 종류 별로 가장 큰 물고기
ORDER BY : 물고기의 ID에 대해 오름차순 정렬
*/
SELECT A.ID, B.FISH_NAME, A.LENGTH
FROM FISH_INFO A JOIN FISH_NAME_INFO B
ON A.FISH_TYPE = B.FISH_TYPE
WHERE (A.FISH_TYPE, A.LENGTH) IN (SELECT FISH_TYPE, MAX(LENGTH)
FROM FISH_INFO
GROUP BY FISH_TYPE)
ORDER BY ID
잡은 물고기 중 가장 큰 물고기의 길이 구하기
[프로그래머스 298515]
/*
SELECT : 가장 큰 물고기의 길이('cm' 를 붙여 출력)
FROM : FISH_INFO 테이블
*/
SELECT CONCAT(MAX(LENGTH),'cm') AS MAX_LENGTH
FROM FISH_INFO
연도별 대장균 크기의 편차 구하기
[프로그래머스 299310]
- WITH : 서브쿼리를 만들고 재사용 가능한 테이블 표현식을 정의하는 방법
/*
SELECT : 분화된 연도, 분화된 연도별 대장균 크기의 편차(분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기), 대장균 개체의 ID
FROM : ECOLI_DATA, 분화된 연도별 가장 큰 대장균의 크기 테이블
WHERE : 분화된 연도와 분화된 연도별이 같을 때
ORDER BY : 연도에 대해 오름차순으로 정렬, 같다면 대장균 크기의 편차에 대해 오름차순 정렬
*/
SELECT YEAR(A.DIFFERENTIATION_DATE) AS YEAR, (B.MAX_SIZE - A.SIZE_OF_COLONY) AS YEAR_DEV, A.ID
FROM ECOLI_DATA A, (SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR, MAX(SIZE_OF_COLONY) AS MAX_SIZE
FROM ECOLI_DATA
GROUP BY YEAR) B
WHERE YEAR(A.DIFFERENTIATION_DATE) = B.YEAR
ORDER BY YEAR, YEAR_DEV
/*
SELECT : 분화된 연도, 분화된 연도별 대장균 크기의 편차(분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기), 대장균 개체의 ID
FROM : ECOLI_DATA, MAX_SIZE_OF_COLONY(분화된 연도별 가장 큰 대장균의 크기) 테이블
WHERE : 분화된 연도와 분화된 연도별이 같을 때
ORDER BY : 연도에 대해 오름차순으로 정렬, 같다면 대장균 크기의 편차에 대해 오름차순 정렬
*/
WITH MAX_SIZE_OF_COLONY AS (
SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR, MAX(SIZE_OF_COLONY) AS MAX_SIZE
FROM ECOLI_DATA
GROUP BY YEAR
)
SELECT YEAR(A.DIFFERENTIATION_DATE) AS YEAR, (B.MAX_SIZE - A.SIZE_OF_COLONY) AS YEAR_DEV, A.ID
FROM ECOLI_DATA A, MAX_SIZE_OF_COLONY B
WHERE YEAR(A.DIFFERENTIATION_DATE) = B.YEAR
ORDER BY YEAR, YEAR_DEV