주문량이 많은 아이스크림들 조회하기

2022. 11. 21. 16:36SQL 문제

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/133027


정답


정답은 맞췄지만 생각보다 시간이 소요된 문제였다. UNION ALL를 통하여 모든 테이블을 합쳐준뒤 합친 테이블에서 FLAVOR 로 그룹화 시켜주고 TOTAL_ORDER를 총 더한 값 순서대로 내림차순 정렬한뒤 상위 3개만 뽑아오는 로직으로 문제를 해결하였다. ORDER BY절에서 값을 더해주면서 정렬을 하면 되는데 자꾸 SELECT 구문에서 더한값을 뽑아오고 해당 컬럼을 숨기는 방식으로 해결할려고 해서 시간이 걸렸다. 다른 분들은 UNION ALL를 쓰지않고 LEFT JOIN를 사용하셨던데 개인적인 생각으로는 만약 오른쪽 테이블에만 존재하는 행중에 두테이블의 값을 합친것보다 더 큰 값이 존재하는 행이 있다면 누락되지 않을까 라는 생각때문에 UNION ALL를 사용하였다. UNION ALL말고 FULL OUTER JOIN를 사용하려 했는데 영문을 모르게 자꾸 실패를 하여서 다음에 다시 시도해바야겠다.