반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 대구카페
- 대구맛집
- 대구고깃집
- 대구삼겹살
- BFS
- 안지랑카페
- 오라클
- 수성못삼겹살
- 백준
- 큐
- 압구정데이트
- 조건문
- 앞산카페
- 수성구맛집
- 정렬
- C#
- 수성못맛집
- programmers
- 별찍기
- 대구데이트
- 브루트 포스
- 수성구데이트
- 대명동맛집
- 들안길삼겹살
- 서울맛집
- 반복문
- SQL
- oracle
- 프로그래머스
- 범어동맛집
Archives
- Today
- Total
모든 일상
[Oracle/프로그래머스] Lv4. 5월 식품들의 총매출 조회하기 본문
728x90
반응형
문제 설명
다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블과 식품의 주문 정보를 담은 FOOD_ORDER 테이블입니다. FOOD_PRODUCT 테이블은 다음과 같으며 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품코드, 식품분류, 식품 가격을 의미합니다.
Column name | Type | Nullable |
PRODUCT_ID | VARCHAR(10) | FALSE |
PRODUCT_NAME | VARCHAR(50) | FALSE |
PRODUCT_CD | VARCHAR(10) | TRUE |
CATEGORY | VARCHAR(10) | TRUE |
PRICE | NUMBER | TRUE |
FOOD_ORDER 테이블은 다음과 같으며 ORDER_ID, PRODUCT_ID, AMOUNT, PRODUCE_DATE, IN_DATE, OUT_DATE, FACTORY_ID, WAREHOUSE_ID는 각각 주문 ID, 제품 ID, 주문량, 생산일자, 입고일자, 출고일자, 공장 ID, 창고 ID를 의미합니다.
Column name | Type | Nullable |
ORDER_ID | VARCHAR(10) | FALSE |
PRODUCT_ID | VARCHAR(5) | FALSE |
AMOUNT | NUMBER | FALSE |
PRODUCE_DATE | NUMBER | TRUE |
IN_DATE | NUMBER | TRUE |
OUT_DATE | NUMBER | TRUE |
FACTORY_ID | VARCHAR(10) | FALSE |
WAREHOUSE_ID | VARCHAR(10) | FALSE |
문제
FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요.
예시
FOOD_PRODUCT 테이블이 다음과 같고
PRODUCT_ID | PRODUCT_NAME | PRODUCT_CD | CATEGORY | PRICE |
P0011 | 맛있는콩기름 | CD_OL00001 | 식용유 | 4880 |
P0012 | 맛있는올리브유 | CD_OL00002 | 식용유 | 7200 |
P0013 | 맛있는포도씨유 | CD_OL00003 | 식용유 | 5950 |
P0014 | 맛있는마조유 | CD_OL00004 | 식용유 | 8950 |
P0015 | 맛있는화조유 | CD_OL00005 | 식용유 | 8800 |
P0016 | 맛있는참기름 | CD_OL00006 | 식용유 | 7100 |
P0017 | 맛있는들기름 | CD_OL00007 | 식용유 | 7900 |
P0018 | 맛있는고추기름 | CD_OL00008 | 식용유 | 6100 |
P0019 | 맛있는카놀라유 | CD_OL00009 | 식용유 | 5100 |
P0020 | 맛있는산초유 | CD_OL00010 | 식용유 | 6500 |
FOOD_ORDER 테이블이 다음과 같을 때
ORDER_ID | PRODUCT_ID | AMOUNT | PRODUCE_DATE | IN_DATE | OUT_DATE | FACTORY_ID | WAREHOUSE_ID |
OD00000056 | P0012 | 1000 | 2022-04-04 | 2022-04-21 | 2022-04-25 | FT19980002 | WH0032 |
OD00000057 | P0014 | 2500 | 2022-04-14 | 2022-04-27 | 2022-05-01 | FT19980002 | WH0033 |
OD00000058 | P0017 | 1200 | 2022-05-19 | 2022-05-28 | 2022-05-28 | FT20070002 | WH0033 |
OD00000059 | P0017 | 1000 | 2022-05-24 | 2022-05-30 | 2022-05-30 | FT20070002 | WH0038 |
OD00000060 | P0019 | 2000 | 2022-05-29 | 2022-06-08 | 2022-06-08 | FT20070002 | WH0035 |
SQL을 실행하면 다음과 같이 출력되어야 합니다.
PRODUCT_ID | PRODUCT_NAME | TOTAL_SALES |
P0017 | 맛있는들기름 | 17380000 |
P0019 | 맛있는카놀라유 | 10200000 |
풀이
SELECT A.PRODUCT_ID, A.PRODUCT_NAME, (A.PRICE * B.AMOUNT) TOTAL_SALES
FROM FOOD_PRODUCT A
INNER JOIN ( SELECT PRODUCT_ID, SUM(AMOUNT) AMOUNT
FROM FOOD_ORDER
WHERE TO_CHAR(PRODUCE_DATE,'YYYY-MM') = '2022-05'
GROUP BY PRODUCT_ID) B
ON A.PRODUCT_ID = B.PRODUCT_ID
ORDER BY 3 DESC, 1;
728x90
반응형
'코딩 공부 > Oracle' 카테고리의 다른 글
[Oracle/프로그래머스] Lv4. 우유와 요거트가 담긴 장바구니 (0) | 2023.03.21 |
---|---|
[Oracle/프로그래머스] Lv4. 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2023.03.21 |
Oracle 프로그래머스 Lv4. 보호소에서 중성화한 동물 (0) | 2023.03.17 |
Oracle 프로그래머스 Lv3. 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.03.17 |
Oracle 프로그로머스 Lv3. 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2023.03.17 |