跳到主要内容

1193.每月交易 I

序号题目难度
1193题目链接中等

题目大意​

编写一个 sql 查询来查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额。

以 任意顺序 返回结果表。

表:Transactions

Column NameType
idint
countryvarchar
stateenum
amountint
trans_datedate

id 是这个表的主键。 该表包含有关传入事务的信息。 state 列类型为 ["approved", "declined"] 之一。

示例​

输入​

Transactions table:

idcountrystateamounttrans_date
121USapproved10002018-12-18
122USdeclined20002018-12-19
123USapproved20002019-01-01
124DEapproved20002019-01-07

输出​

monthcountrytrans_countapproved_counttrans_total_amountapproved_total_amount
2018-12US2130001000
2019-01US1120002000
2019-01DE1120002000

参考答案​

select
substr(trans_date,1,7) month
,country
,count(1) 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 1,2
;