본문 바로가기
「SQL초급떼기

[프로그래머스sql고득점kit-level4]코딩테스트 연습JOIN5월 식품들의 총매출 조회하기

by DayGo 2023. 8. 13.

https://school.programmers.co.kr/learn/courses/30/lessons/131117

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

역시 오랜만에 푸니 date_format 구분 까먹었다!!

다시 복습!!!!

문제

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

그래도 맞췄다!!ㅋㅋ

-- 코드를 입력하세요
-- food_product 
-- food_order  
-- join key product_id
-- where 조건  : produce_Data 가 202205 인 식품에 한정, date_foramt(date, '%Y%m')
SELECT c1.product_id, c1.product_name, sum(c1.price*c2.amount) as 총매출

from food_product as c1 inner join food_order as c2 on c1.product_id=c2.product_id
where date_format(c2.produce_date, '%Y%m')='202205'
group by c1.product_id, c1. product_name
order by 총매출 DESC, C1.product_id

 

이러한형식도 기억하자!!

SELECT 
  DATE_FORMAT(sales_date, '%Y') AS 년, 
  DATE_FORMAT(sales_date, '%m') AS 월,
  COUNT(DISTINCT c1.user_id) AS 이용회원수,
  ROUND(
    COUNT(DISTINCT c1.user_id) / 
    (SELECT COUNT(c2.user_id) FROM user_info WHERE DATE_FORMAT(c2.joined, '%Y')='2021'),
    1
  ) AS ratio
FROM 
  ONLINE_SALE AS c1
INNER JOIN 
  USER_INFO AS c2 ON c1.user_id = c2.user_id
WHERE 
  DATE_FORMAT(c2.joined, '%Y') = '2021'
GROUP BY 
  DATE_FORMAT(sales_date, '%Y'), DATE_FORMAT(sales_date, '%m') 
ORDER BY 
  DATE_FORMAT(sales_date, '%Y'), DATE_FORMAT(sales_date, '%m');

댓글