
여러분 풀었는데요..

런타임이 너무 긴 거 있죠.. ㅋㅋㅋ
일단 저의 답 쿼리는!
SELECT DATE_FORMAT(trans_date, "%Y-%m") month
, country
, COUNT(*) trans_count
, SUM(CASE WHEN state = "approved" THEN 1 ELSE 0 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 country, DATE_FORMAT(trans_date, "%Y-%m")
가장 단순한 쿼리인 것 같은데 다른 사람들의 쿼리도 봅시다!
SELECT SUBSTR(trans_date,1,7) as month
, country
, count(id) as trans_count
, SUM(CASE WHEN state = 'approved' then 1 else 0 END) as approved_count
, SUM(amount) as trans_total_amount
, SUM(CASE WHEN state = 'approved' then amount else 0 END) as approved_total_amount
FROM Transactions
GROUP BY month, country
비슷한 구조인데 런타임이 훨씬 짧아요.
코테를 잠깐 안하고 있다가 다시 하려니까 좀 까먹었네요 ㅎ
group by에는 select절의 컬럼명을 써도 된다는 점!!!
수정해서 실행시키니까 훨씬 짧아지긴 했어요 !!
그리고 date_format()보다 SUBSTR()이 훨씬 빠른가봐요.
date형식이니까 SUBSTR()를 사용하지 못할 거라고 생각했는데...!
가능한가봐욥 ? 🤔🫢