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
相关推荐
小白说大模型1 小时前
LLM集成数据库的幻觉治理:当AI给出的SQL建议是错的
数据库·人工智能·sql·oracle·重构·开源
Csvn2 小时前
📊 SQL 入门 Day 19:事务与隔离级别
后端·sql
Tisfy4 小时前
LeetCode 3471.找出最大的几近缺失整数:三种情况判断
算法·leetcode·题解·分类讨论
今天AI了吗4 小时前
深度学习基础-Harness:从评估框架到工程落地
数据库·人工智能·sql·深度学习·机器学习
码农颜4 小时前
6.1.2 常⽤⽅法的问题
数据库·sql·oracle
TJHHH.6 小时前
SQL注入学习总结
数据库·笔记·sql·学习·注入
青 春 记 忆7 小时前
LeetCode 121. 买卖股票的最佳时机|Python 解法详解
python·算法·leetcode
云水一下7 小时前
零基础玩转bWAPP靶场(六十三):Drupal SQL Injection (Drupageddon)
sql·web安全·bwapp
rannn_1118 小时前
【力扣hot100】二叉树专题
算法·leetcode·职场和发展
Navigator_Z9 小时前
LeetCode //C - 1203. Sort Items by Groups Respecting Dependencies
c语言·算法·leetcode