728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/133027
정답 코드
SELECT FIRST_HALF.FLAVOR
FROM FIRST_HALF JOIN JULY ON FIRST_HALF.FLAVOR = JULY.FLAVOR
GROUP BY FIRST_HALF.FLAVOR
ORDER BY FIRST_HALF.TOTAL_ORDER + SUM(JULY.TOTAL_ORDER) DESC
limit 3;
SELECT FLAVOR
FROM (
SELECT FLAVOR, TOTAL_ORDER
FROM FIRST_HALF
UNION ALL
SELECT FLAVOR, TOTAL_ORDER
FROM JULY
)a # derived table은 alias가 있어야 한다
GROUP BY FLAVOR
ORDER BY SUM(a.TOTAL_ORDER) DESC
LIMIT 3;
- UNION:
- UNION은 두 개 이상의 SELECT 문의 결과를 결합하여 하나의 결과 집합으로 만드는 집합 연산자입니다.
- 각 SELECT 문은 동일한 열 수와 동일한 데이터 유형을 가져야 합니다.
- 중복된 행을 제거하여 결과에는 고유한 행만 포함됩니다.
- 보통, UNION은 서로 다른 테이블 또는 쿼리 결과를 결합하여 단일 결과 집합을 생성하는 데 사용됩니다.
- JOIN:
- JOIN은 두 개 이상의 테이블에서 데이터를 결합하여 새로운 결과 집합을 생성하는 데 사용됩니다.
- 각 테이블은 일반적으로 특정 열(키 열)을 공유하며, 이를 기반으로 데이터가 결합됩니다.
- JOIN은 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN 등 다양한 유형이 있습니다. 각 JOIN 유형에 따라 결합되는 방식이 다릅니다.
- JOIN을 사용하면 테이블 간의 관계를 사용하여 연관된 데이터를 검색하거나 결합할 수 있습니다.
WITH J as (
select FLAVOR, SUM(TOTAL_ORDER) as TOTAL_ORDER
from JULY
group by FLAVOR
),
H as (
select FLAVOR, SUM(TOTAL_ORDER) as TOTAL_ORDER
from FIRST_HALF
group by FLAVOR
)
SELECT FLAVOR
FROM H join J using(FLAVOR)
ORDER BY (H.TOTAL_ORDER + J.TOTAL_ORDER) desc
LIMIT 3;
/*
FROM H JOIN J USING (FLAVOR)은
FROM H JOIN J ON H.FLAVOR = J.FLAVOR와 같은 의미를 갖습니다.
*/
728x90
반응형
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[MySQL] 프로그래머스 131117. 5월 식품들의 총매출 조회하기 (0) | 2024.02.23 |
---|---|
[MySQL] 프로그래머스 157339. 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.02.23 |
[MySQL] 프로그래머스 59408. 중복 제거하기 (0) | 2024.02.21 |
[MySQL] 프로그래머스 131115. 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2024.02.21 |
[MySQL] 프로그래머스 273712. 업그레이드 할 수 없는 아이템 구하기 (0) | 2024.02.21 |