https://school.programmers.co.kr/learn/courses/30/lessons/164668
코드설명
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