Contents
내가 작성한 쿼리
월별 및 국가별로 SQL 쿼리를 작성하여 거래 수와 총액, 승인된 거래 수와 총액을 찾습니다. 결과 테이블을 순서에 상관없이 반환하세요.
내가 작성한 쿼리
MySQL
SELECT
t2.month,
country,
COUNT(*) 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 (
-- 년-월을 나타내는 컬럼을 추가한 테이블 서브쿼리
SELECT
*,
DATE_FORMAT(trans_date, '%Y-%m') AS month
FROM
Transactions
) t2
GROUP BY country, month
Oracle
SELECT
t2.month,
t2.country,
COUNT(*) AS trans_count,
SUM(CASE WHEN t2.state = 'approved' THEN 1 ELSE 0 END) AS approved_count,
SUM(t2.amount) AS trans_total_amount,
SUM(CASE WHEN t2.state = 'approved' THEN t2.amount ELSE 0 END) AS approved_total_amount
FROM (
-- 년-월 컬럼을 추가한 서브쿼리
SELECT
t.*,
TO_CHAR(trans_date, 'YYYY-MM') AS month
FROM
Transactions t
) t2
GROUP BY t2.country, t2.month;
차이점
- 날짜 포맷 함수 차이
Share article