두번째 파트인 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 을 사용해주기
'데이터 스터디 > SQL' 카테고리의 다른 글
[programmers] SQL 고득점 Kit - JOIN (0) | 2023.04.06 |
---|---|
[programmers] SQL 고득점 Kit - NOT NULL (0) | 2023.04.05 |
[programmers] SQL 고득점 Kit - Select문 (0) | 2023.04.05 |