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

 

프로그래머스

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

programmers.co.kr

코드설명

INNER JOIN + GROUP BY + HAVING 를 활용합니다.

 

문제 작성하며, 가끔씩 WHERE 절을 GROUP BY HAVING 절 이후에 작성하곤 합니다..

항상 순서는 SELECT FROM WHERE GROUP BY ORDER BY 순서로 작성해야 한다는점을 유의합니다.

 

또, SUM(UGB.PRICE) 로 각 사용자 별로의 총 사용금액을 뽑기 위해서 GROUP BY 를 사용해야 합니다.

(만약 SUM(UGB.PRICE)를 GROUP BY 없이 사용한다면 전체 값에 대한 합이 반환되겠지요)

코드

SELECT UGU.USER_ID, UGU.NICKNAME, SUM(UGB.PRICE) AS TOTAL_SALES
FROM USED_GOODS_BOARD AS UGB
INNER JOIN USED_GOODS_USER AS UGU
ON UGB.WRITER_ID = UGU.USER_ID
WHERE UGB.STATUS = 'DONE' 
GROUP BY UGB.WRITER_ID
HAVING TOTAL_SALES >= 700000
ORDER BY TOTAL_SALES ASC

 

ORACLE

SELECT UGU.USER_ID AS USER_ID, UGU.NICKNAME AS NICKNAME, SUM(UGB.PRICE) AS TOTAL_SALES
FROM USED_GOODS_BOARD UGB
INNER JOIN USED_GOODS_USER UGU
ON UGB.WRITER_ID = UGU.USER_ID
WHERE UGB.STATUS = 'DONE'
GROUP BY UGU.USER_ID, UGU.NICKNAME
HAVING SUM(UGB.PRICE) >= 700000
ORDER BY TOTAL_SALES ASC

+ Recent posts