본문 바로가기
Database/MySQL

[MySQL] SUM + CASE WHEN + GROUP BY 처리

by 데이터현 2022. 4. 20.

https://leetcode.com/problems/capital-gainloss/

위 문제를 풀고 내용 정리

 

주식 별로 얼마나 손익을 봤는지 계산하는 문제

 

처음엔 GROUP BY stock_name, operation 이렇게 묶고 SELECT 한번 더 해서 나중에 처리하려고 했는데

뭔가 잘 되지 않았다.

 

SUM 안에 CASE WHEN을 넣어서 처리하면 깔끔하게 풀이할 수 있다.

 

# Write your MySQL query statement below
SELECT stock_name, SUM(
    CASE WHEN operation = 'Buy' THEN -price
    ELSE price
    END
) AS capital_gain_loss
FROM Stocks
GROUP BY stock_name
;

댓글