데이터 스터디/SQL

[programmers] SQL 고득점 Kit - SUM, MAX, MIN

케이와이엠 2023. 4. 5. 16:53

두번째 파트인 SUM, MAX, MIN이다. 

 

# 최대값 구하기

가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
select DATETIME
from ANIMAL_INS
order by DATETIME desc
limit 1
select max(DATETIME)
from ANIMAL_INS

 

- order by 한 다음에, limit해서 가장 위에 있는 애로 구하거나

- 바로 max함수를 써서 구하거나

 

# 중복 제거하기

동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.
SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS
where NAME IS NOT NULL

- 이름이 not null 이라는 사실을 where조건절에 넣어준다.

- 중복을 제거한 row의 개수를 넣으면 되는거라 count(distinct 이름) 해주면 된다.

 

# 동물 수 구하기

동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요.
SELECT COUNT(*)
FROM ANIMAL_INS

- 총 몇마리가 들어왔는지는 전체 행을 세어주면 되는거라 count(*)해주면 len(df)처럼 셀 수 있음

 

 

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

FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.
SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1

- 여기선 제일 비싼 가격을 물어보는게 아니라, 비싼 가격에 '해당하는' 식품의 정보를 물은거라 limit 1으로 접근하면 된다.

 

- 아니면 

select *
from FOOD_PRODUCT
where price in (select max(price)
from FOOD_PRODUCT )

- 가장 비싼 가격값을 구해서 -> price중에 여기에 해당하는 상품 정보를 가져오게끔 in 을 사용해주기