01/27 SQL 문제풀이

Data Architect / Engineer·2024년 1월 27일
1

1일_1SQL

목록 보기
16/63
post-thumbnail

문제

  • LeetCODE SQL 문제
  • 1393. Capital Gain/Loss / `Medium'
  • 문제 내용 : Leetcode 링크 참조 [링크]


내가 작성한 Query

SELECT stock_name
     , SUM(CASE
            WHEN operation = 'Buy' THEN (-1)*price
            WHEN operation = 'Sell' THEN price
        END) AS capital_gain_loss   
FROM Stocks
GROUP BY stock_name  
  • 각 주식별('stock_name') Buy 이후 Sell 하였을 때 최종 수익을 구하는 문제임.
  • 수익 = (Sell 할 때 가격 - Buy 할 때 가격) 이므로, CASE WHEN을 사용하여,
    operation이 'Buy'인 경우, price에 -1을 곱한 후 출력하고, 'Sell'인 경우 가격 그대로 출력하게 함. 이 값을 'capital_gain_loss' 라고 별칭
  • GROUP BY를 이용, stock_name별로 'capital_gain_loss'들의 SUM을 구하면 'Capital gain/loss를 구할 수 있다.
  • 수익 = (Sell 할 때 가격 - Buy 할 때 가격)을 구하기 위해,CASE문을 이용하여 'price'를 처리 후, 이를 GROUP BY를 통해 합을 구하는 문제였다.

profile
질문은 계속돼 아오에

0개의 댓글