我是靠谱客的博主 魁梧枕头,最近开发中收集的这篇文章主要介绍数据库精选70题:Leetcode 1193. 每月交易 I题目描述,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述

able: Transactions

Column NameType
idint
countryvarchar
stateenum
amountint
trans_datedate

id 是这个表的主键。
该表包含有关传入事务的信息。
state 列类型为 “[”批准“,”拒绝“] 之一。

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

查询结果格式如下所示:

Transactions table:

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

Result table:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/monthly-transactions-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

IF()函数与CASE WHEN()函数

#法一
select date_format(trans_date, '%Y-%m') as month,
        country,count(*) as trans_count,
        sum(state = 'approved') 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 country,date_format(trans_date, '%Y-%m');
#法二
select date_format(trans_date, '%Y-%m') as month,
        country,count(*) as trans_count,
        sum(if(state = 'approved',1,0)) as approved_count,
        sum(amount) as trans_total_amount,
        sum(if(state = 'approved',amount,0)) as approved_total_amount
from transactions
group by country,date_format(trans_date, '%Y-%m');

最后

以上就是魁梧枕头为你收集整理的数据库精选70题:Leetcode 1193. 每月交易 I题目描述的全部内容,希望文章能够帮你解决数据库精选70题:Leetcode 1193. 每月交易 I题目描述所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部