Kimuksung
Kimuksung 안녕하세요. 분산처리에 관심이 많은 생각하는 주니어 Data Enginner입니다.

leet code sql 1193

leet code sql 1193

1193. Monthly Transactions I

문제

  • 트랜잭션이 발생한 날짜를 month, country 기준으로 모은다.
  • state 별로 승인이 된 경우와 전체 트랜잭션 기준으로 데이터를 추출
문제 접근

  • redshift에서는 to_date를 사용하지만, mysql에서는 date_format을 사용
  • group by와 case when을 사용하여 각 케이스 별로 나누어 구성
1
2
3
4
5
6
7
8
9
select
    DATE_FORMAT(trans_date, '%Y-%m') month,
    country,
    count(*) trans_count,
    count(case when state = 'approved' then 1 end) approved_count,
    sum(amount) trans_total_amount,
    sum(case when state = 'approved' then amount else 0 end) approved_total_amount 
from Transactions
group by 1, 2