sql_코드카타(2023.12.19)

김수경·2023년 12월 19일

코드카타

목록 보기
6/29
  1. FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요. (오답)
#전일 마지막문제와 유사, 가격 최대값 구하는 서브쿼리 이용
select a.category,
a.price_max,
a. product_name
from 
(
    select max(price) price_max,
    category, product_name
    from food_product 
    group by 2 ) a
    join food_product b on a.category = b.category and a.price_max = b.price   
where b.category in ('과자','국','김치','식용유')
order by 2 desc 
##product_name의 출처가 틀렸다. b 가져와야 한다. 
SELECT a.category,a.price,b.product_name
from 
(
    select category, max(price) price
     from food_product
    where category in ('국','김치','식용유','과자')
    group by category
)a join food_product b
on a.category = b.category and a.price =b.price
order by a.price desc

FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요.

#서브쿼리 이용해 product_id별 매출 총합 구하기
select a.product_id,
a.product_name,
a.TOTAL_SALES
from 
(
    SELECT p.product_id,
    sum(p.price * o.amount) TOTAL_SALES,
    p.product_name
    from food_product p inner join food_order o on p.product_id = o.product_id 
    where date_format(o.produce_date, '%Y%m') = 202205
    group by 1 
) a
order by 3 desc, 1 
profile
잘 하고 있는겨?

0개의 댓글