1393. Capital Gain/Loss(LeetCode)

minllny·2024년 5월 27일


다시 오랜만입니다 😅
정말 오랜만에 하려니 콩알만했던 감마저도 잃어버렸지 뭐에요 ??? ㅋㅋㅋ
아무튼,, 다시 시작해볼게욥 ^_^



제 답 쿼리입니다.

WITH T1 AS (
    SELECT stock_name
         , SUM(price) sell_sum
    FROM Stocks 
    WHERE operation = 'Sell' 
    GROUP BY stock_name
), T2 AS (
    SELECT stock_name
         , SUM(price) buy_sum
    FROM Stocks 
    WHERE operation = 'Buy' 
    GROUP BY stock_name
)

SELECT DISTINCT T1.stock_name 
     , sell_sum - buy_sum AS capital_gain_loss
FROM T1 JOIN T2 ON T1.stock_name = T2.stock_name

누가 저에게 서브쿼리없이 푸는 법 좀 알려주세요 ㅋㅋ
operation 컬럼이 'Sell'이면 +price를 해주고
operation 컬럼이 'Buy'면 -price를 해주는 법,,



다른 쿼리들을 살펴봅시다!!!

select stock_name
     , SUM(CASE WHEN operation = 'Sell' then price ELSE -price END) as capital_gain_loss 
from Stocks 
group by stock_name;

....???
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
저도 비슷하게는 했었는데 SUM()을 저렇게 통째로 씌워버리는 방법?
까먹어버렸는걸요;;;

profile
SQL 끄적끄적

0개의 댓글