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
相关推荐
dayuOK63071 天前
AI内容创作工具的下一个战场:从“生成”到“全流程自动化”
运维·人工智能·chatgpt·职场和发展·自动化·新媒体运营·媒体
水木流年追梦1 天前
大模型入门-Reward 奖励模型训练
开发语言·python·算法·leetcode·正则表达式
muddjsv1 天前
SQL 最常用技能详解与实战示例
数据库·sql·mysql
这个DBA有点耶1 天前
数据迁移避坑指南:从Oracle到国产数据库的兼容性问题
数据库·数据仓库·sql·oracle·dba
zgscwxd1 天前
MySQL 远程访问并结合花生壳实现外网穿透
sql
huaCodeA1 天前
Android面试-Flow相关
android·面试·职场和发展
JAVA社区1 天前
Java进阶全套教程(三)—— Spring框架核心精讲
java·开发语言·spring·面试·职场和发展·mybatis
始三角龙1 天前
LeetCode hoot 100 -- 缺失的第一个正整数
算法·leetcode·职场和发展
灰太狼!!1 天前
数仓、接口开发常用clickhouses函数详解
数据仓库·sql·clickhouse
我是一颗柠檬1 天前
【MySQL全面教学】MySQL基础与环境搭建Day1(2026年)
数据库·后端·sql·mysql·database