https://school.programmers.co.kr/learn/courses/30/lessons/133027
■ 1번째 방법 : union all + with문 사용하기 , but flavor 키값을 활용한 join을 사용하지 않음
-- 코드를 입력하세요
-- FIRST_HALF 테이블 : 아이스크림 가게의 상반기 주문 정보 , FLAVOR
-- JULY 테이블 : 7월의 아이스크림 주문 정보, SHIPMENT_ID
-- 7월 아이스크림 총 주문량과
-- 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요.
-- with 문 사용해보자!! union all
with sum_total as
(SELECT FLAVOR,sum(total_order) as total_order
from FIRST_HALF
group by FLAVOR
union all
SELECT FLAVOR,sum(total_order) as total_order
from JULY
group by FLAVOR)
SELECT FLAVOR,sum(total_order) as total_order
from sum_total
group by FLAVOR
order by total_order desc
limit 3
그러나!! 이것은 나의 오답이었다!!!왜 틀렸지.ㅠㅠㅠㅠ
■ 다른분 정답 보기
WITH A AS
(SELECT *
FROM JULY
UNION ALL
SELECT *
FROM FIRST_HALF
)
SELECT FLAVOR
FROM A
GROUP BY FLAVOR
ORDER BY SUM(TOTAL_ORDER) DESC
LIMIT 3
헉!! 실수!!!!
마지막 select에서 flavor 맛만 한컬럼만 추출해야하는데!!!!! sum값까지 추출해서였군!!이런 단순실수를 절대 nono!!!
또한가지 주의점!!
order by total_order desc 여기서 total_order 는 july와 half의 값을 합쳐서 해줘야함!!!!!
이거 안하면 답이 다름!!!
with sum_total as
(SELECT FLAVOR,sum(total_order) as total_order
from FIRST_HALF
group by FLAVOR
union all
SELECT FLAVOR,sum(total_order) as total_order
from JULY
group by FLAVOR)
SELECT FLAVOR
from sum_total
group by FLAVOR
order by sum(total_order) desc
limit 3
order by 문에 alias는 먹히지 않는다.
'「SQL초급떼기' 카테고리의 다른 글
코딩테스트 연습GROUP BY카테고리 별 도서 판매량 집계하기 (0) | 2023.04.02 |
---|---|
[프로그래머스고득점kit]코딩테스트 연습GROUP BY즐겨찾기가 가장 많은 식당 정보 출력하기(level3) (0) | 2023.03.31 |
[프로그래머스고득점kit]코딩테스트 연습코딩테스트 연습JOIN보호소에서 중성화한 동물(level 4) (0) | 2023.03.30 |
[프로그래머스고득점kit]코딩테스트 연습JOIN없어진 기록 찾기(level3) (0) | 2023.03.30 |
[프로그래머스고득점kit] 코딩테스트 연습JOIN오랜 기간 보호한 동물(1)(level 3) (0) | 2023.03.30 |
댓글