관리 메뉴

Mini

프로그래머스 상품 별 오프라인 매출 구하기 // GROUP BY 이해하기, ORDER BY 정렬기준 2개, SQL실행순서 본문

SQL 코테

프로그래머스 상품 별 오프라인 매출 구하기 // GROUP BY 이해하기, ORDER BY 정렬기준 2개, SQL실행순서

Mini_96 2023. 8. 6. 16:36

https://school.programmers.co.kr/learn/courses/30/lessons/131533

 

프로그래머스

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

programmers.co.kr

* SQL실행순서

코딩순서 : SELECT -> FROM -> WHERE ->  GROUP BY -> HAVING ->ORDER BY

실행순서 : SELECT를 맨뒤로

 FROM -> WHERE ->  GROUP BY -> HAVING ->ORDER BY -> SELECT 이다.

※ 별칭등은 실행순서 이전에서는 사용할 수 없다.

EX) WHERE에서 별칭지은것은, FROM에서 사용불가능하다.

EX2) SELECT CNT(HIT)

WHERE CNT(HIT)<2

GROUP BY NAME가 안되는 이유 : 

집계함수는 GROUP BY 이후에 사용해야한다.

 

*GROUP BY 이해하기

SELECT SUM(HIT) FROM TABLE  # 전체테이블기준으로 HIT가 집계된다.

SELECT NAME, SUM(HIT)

FROM TABLE

GROUP BY NAME # NAME기준으로 각각 HIT 가 집계된다.

 

* 전체코드

# 코드를 입력하세요
SELECT PRODUCT_CODE, SUM(SALES_AMOUNT)*PRICE AS SALES
FROM PRODUCT A INNER JOIN OFFLINE_SALE B ON A.PRODUCT_ID=B.PRODUCT_ID
GROUP BY PRODUCT_CODE
ORDER BY SALES DESC, PRODUCT_CODE

 

* 실행결과