LeetCode刷题---每月交易I



LeetCode官方题解

解题思想:

首先按照日期和国家/地区进行分组

对分组后的结果求解,使用IF函数进行过滤

涉及函数

1.在对日期截取时,使用了MySQL中的DATE_FORMAT函数,将日期转换为指定格式的日期

复制代码
//2024-03-11,截取为 2024-03-11
DATE_FORMAT('2024-03-11','%Y-%m')
//20240311,截取结果为202403
DATE_FORMAT('20240311','%Y%m')

2.该题配合MySQL中的IF 函数进行过滤,IF 函数中包含了一个三元表达式,当state不等于approved时,将state赋值为NULL或0。

复制代码
//求取分组后的批准总数
COUNT(IF(state = 'approved', 1, NULL)) AS approved_count
//求取分组后的金额总数
SUM(IF(state = 'approved', amount, 0)) AS approved_total_amount

完整SQL代码

复制代码
SELECT DATE_FORMAT(trans_date, '%Y-%m') AS month,
    country,
    COUNT(*) AS trans_count,
    COUNT(IF(state = 'approved', 1, NULL)) AS approved_count,
    SUM(amount) AS trans_total_amount,
    SUM(IF(state = 'approved', amount, 0)) AS approved_total_amount
FROM Transactions
GROUP BY month, country
相关推荐
.柒宇.19 分钟前
力扣hoT100之找到字符串中所有字母异位词(java版)
java·数据结构·算法·leetcode
百***069429 分钟前
SQL JOIN:内连接、外连接和交叉连接(代码+案例)
数据库·sql·oracle
YoungHong19921 小时前
面试经典150题[063]:删除链表的倒数第 N 个结点(LeetCode 19)
leetcode·链表·面试
青山的青衫2 小时前
【前后缀】Leetcode hot 100
java·算法·leetcode
啊吧怪不啊吧3 小时前
二分查找算法介绍及使用
数据结构·算法·leetcode
不说别的就是很菜3 小时前
【前端面试】前端工程化篇
前端·面试·职场和发展
_Minato_3 小时前
数据库知识整理——SQL数据更新
数据库·sql
PPT百科4 小时前
WPS PPT模板中心:免费模板的查找与使用!
职场和发展·powerpoint·职场·ppt
兰若姐姐7 小时前
cisp-pte之SQL注入题之vulnerabilities/fu1.php?id=1
数据库·sql