web/SQL

프로그래머즈 SQL 고득점 Kit - SUM, MAX, MIN, ISNULL

민사민서 2024. 2. 8. 15:47

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

SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1

 

- 혹은 서브쿼리와 MAX()를 이용해 풀 수도 있다

SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT)

 

2. 가장 비싼 상품 구하기

SELECT MAX(PRICE) AS MAX_PRICE
FROM PRODUCT

 

3. 최댓값, 최솟값 구하기

SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS

// 혹은 MIN(DATETIME)

 

4. 동물 수 구하기

SELECT COUNT(*) AS count
FROM ANIMAL_INS

 

5. 중복 제거하기

SELECT COUNT(DISTINCT NAME) AS count
FROM ANIMAL_INS

 

- DISTINCT를 적용시킴으로써 중복을 허용하지 않고 카운트한다

- 만약 NULL값도 집계함수에 포함하려면 COUNT(IFNULL(NAME, "BOB")) 이런 식으로 해도 되겠네

 

6. 경기도에 위치한 식품창고 목록 출력하기

SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, "N") AS FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE "경기도%"
ORDER BY WAREHOUSE_ID ASC

 

7. 이름이 없는/있는 동물의 아이디

SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL

// IS NULL, IS NOT NULL

 

8. NULL 처리하기

SELECT ANIMAL_TYPE, IFNULL(NAME, "No name") AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC

 

9. 나이 정보가 없는 회원 수 구하기

SELECT COUNT(*) AS USERS
FROM USER_INFO
WHERE AGE IS NULL