每日一SQL 【每月交易 I】

文章目录

问题

案例

执行顺序

select,from,where,group by,order by,having, limit执行顺序

使用分组解决

sql 复制代码
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 date_format(trans_date, '%Y-%m'), country;

解释

date_format: 时间格式化函数

sum(case when...then...else...end): 对分组后的数据按照规则进行累计

相关推荐
老衲提灯找美女1 小时前
MySQL数据库基础操作:
数据库·mysql·oracle
轻舟客丶1 小时前
ORA-03113的解决方案
数据库·经验分享·笔记·oracle
ヾChen1 小时前
头歌MySQL——复杂查询
数据库·物联网·学习·mysql·头歌
上下翻飞的屁1 小时前
jdbcTemplate执行sql后数据库字段没有更新问题解决
java·数据库·sql
悦光阴1 小时前
SQL Server 并发控制:Fabric Warehouse只支持快照隔离
大数据·运维·数据库·fabric
谅望者1 小时前
SQL子查询完全指南:从零掌握嵌套查询的三种用法与最佳实践
数据库·sql·数据库开发·子查询
阿萨德528号2 小时前
Redis 分布式锁进阶:跨语言场景下的锁兼容性与一致性保障
数据库·redis·分布式
开开心心就好2 小时前
电脑音质提升:杜比全景声安装详细教程
java·开发语言·前端·数据库·电脑·ruby·1024程序员节
让学习成为一种生活方式2 小时前
调控大肠杆菌胞内ATP和NADH水平促进琥珀酸生产--文献精读172
数据库
yoi啃码磕了牙2 小时前
Unity—Localization 多语言
java·数据库·mysql