본문 바로가기
문제풀이/SQL(My sql)

[문제풀이] Leet code - Odd and Even Transactions

by kime2 2024. 8. 14.
출처

 

문제

Write a solution to find the sum of amounts for odd and even transactions for each day. If there are no odd or even transactions for a specific date, display as .0
Return the result table ordered by in ascending order.transaction_date

 

문제에 대한 해석

거래 날 별로 거래수량을 홀수인 경우와 짝수인 경우의 합을 계산

2024-07-01의 홀수 거래량 : 75 

2024-07-01의 짝수 거래량 : 200 + 150

 

풀이(MYSQL)

-- 정답
with base as (
    select transaction_date,
    if(amount%2 = 1 , amount, 0 ) as'odd_sum',
    if(amount%2 = 0 , amount, 0 ) as'even_sum'
from transactions
)
select transaction_date, sum(odd_sum) as 'odd_sum', sum(even_sum) as 'even_sum'
from base 
group by transaction_date
order by transaction_date

select transaction_date,
    sum(if(amount%2 = 1 , amount, 0 )) as'odd_sum',
    sum(if(amount%2 = 0 , amount, 0 )) as'even_sum'

좀더 간단하게 하기 위해  if절에 sum()의 집계함수를 사용가능