뭉지(moonz)
작은 발자국들의 위대한 여정
뭉지(moonz)
  • All (200)
    • Test Code (4)
    • 백엔드 개발하며 작성한 (25)
      • Spring (16)
      • 데이터베이스 (6)
      • 기억할 내용 (3)
    • 언어 (53)
      • Java (25)
      • node.js (7)
      • Python (21)
    • 클라우드 (6)
    • Algorithm & Data Structure (51)
      • 개념 (15)
      • 문제 풀이 (36)
    • 유용한 모든 것 (16)
    • monologue (7)
      • 업무 노트 (1)
      • 관리 로그 (0)
      • 내 이야기 공책 (6)
    • Project (2)
    • TroubleShooting (8)
    • 지식 (18)
      • Machine Learning (6)
      • Review (7)
      • Web (5)
    • Computer Science (5)

블로그 메뉴

  • 홈
  • 태그

인기 글

최근 글

최근 댓글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
뭉지(moonz)

작은 발자국들의 위대한 여정

[SQL, 프로그래머스] 상품 별 오프라인 매출 구하기
Algorithm & Data Structure/문제 풀이

[SQL, 프로그래머스] 상품 별 오프라인 매출 구하기

2024. 6. 9. 14:00
반응형

프로그래머스에 여러 문법들을 활용해서 SQL 쿼리문을 짜볼 수 있도록 다양한 문제들을 레벨 별로 제공하고 있습니다.
Lv2 '상품 별 오프라인 매출 구하기' 문제를 풀어보았습니다.

프로그래머스 문제 링크 참고 바라며, 문제는 간략히 설명합니다.

 

프로그래머스

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

programmers.co.kr

 

사용할 테이블 정보

어느 의류 쇼핑몰에서 판매중인 상품들의 상품 정보를 담은 PRODUCT 테이블과
오프라인 상품 판매 정보를 담은 OFFLINE_SALE 테이블이 있으며,
두 테이블 모두 product_id 칼럼을 가지고 있습니다.

생각의 과정

  1. product 테이블과 offline_sale 테이블 각각의 칼럼을 조합하여 결과를 보여주어야 한다.
    • JOIN을 수행해야겠다. product_id를 공통으로 가지고 있으니 이를 활용한다.
  2. 매출액은 product.price와 offline_sale.sales_amount의 곱이다.
  3. 상품코드 별 매출액의 합을 구해야한다.
    • 상품코드로 GROUP BY하여 SUM()을 구해야겠다.
  4. 매출액으로 내림차순하고, 동일한 매출액이면 상품코드로 오름차순한다.
    • ORDER BY 매출액 desc, 상품코드 asc
  5. (참고) 상품ID는 OFFLIE_SALE 테이블에 중복으로 존재할 수 있으나, 상품ID와 판매일까지 고려한 데이터는 중복 존재하지 않는다.
  6. 상품이 오프라인 판매 테이블에 존재하지 않을 수 있고, 이럴 경우 어떻게 할지 고려해야 할 것 같다.
    • (해당 내용에 대한 설명은 따로 없어 우선 고려하지 않고 문제를 제출하니 테스트 케이스에 이런 경우는 없는지 통과되었다.)

SQL 쿼리 작성 (MySQL)

SELECT product.product_code, SUM(product.price * offline_sale.sales_amount) AS sales
FROM product INNER JOIN offline_sale
ON product.product_id = offline_sale.product_id
GROUP BY product.product_code
ORDER BY sales desc, product.product_code asc;

필요한 지식

INNER JOIN, GROUP BY, ORDER BY, 연산함수 SUM

반응형
저작자표시 (새창열림)

'Algorithm & Data Structure > 문제 풀이' 카테고리의 다른 글

[SQL, 프로그래머스] 주문량이 많은 아이스크림들 조회하기  (0) 2024.06.16
[SQL, 프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기  (1) 2024.06.09
[HackerRank] SQL 문제  (0) 2022.06.26
[JAVA] baekjoon 2447 별 찍기-10  (0) 2022.06.15
[JAVA] baekjoon 1891 사분면  (0) 2022.06.13
    'Algorithm & Data Structure/문제 풀이' 카테고리의 다른 글
    • [SQL, 프로그래머스] 주문량이 많은 아이스크림들 조회하기
    • [SQL, 프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기
    • [HackerRank] SQL 문제
    • [JAVA] baekjoon 2447 별 찍기-10
    뭉지(moonz)
    뭉지(moonz)
    제가 깨달은 것을 정리하는 공간입니다. 🧡

    티스토리툴바