MySQL高阶1831-每天的最大交易

题目

编写一个解决方案,报告每天交易金额 amount 最大 的交易 ID 。如果一天中有多个这样的交易,返回这些交易的 ID 。

返回结果根据 transaction_id 升序排列

准备数据

sql 复制代码
Create table If Not Exists Transactions (transaction_id int, day date, amount int);
    Truncate table Transactions;
    insert into Transactions (transaction_id, day, amount) values ('8', '2021-4-3 15:57:28', '57');
    insert into Transactions (transaction_id, day, amount) values ('9', '2021-4-28 08:47:25', '21');
    insert into Transactions (transaction_id, day, amount) values ('1', '2021-4-29 13:28:30', '58');
    insert into Transactions (transaction_id, day, amount) values ('5', '2021-4-28 16:39:59', '40');
    insert into Transactions (transaction_id, day, amount) values ('6', '2021-4-29 23:39:28', '58');

分析数据

第一步:使用开窗函数根据amount降序

sql 复制代码
select *,
       rank() over(partition by day order by amount desc) rn
       from transactions;

第二步:选出最大交易金额的交易ID

sql 复制代码
with t1 as (
    select *,
           rank() over(partition by day order by amount desc) rn
    from transactions
)select transaction_id from t1
where rn =1
order by transaction_id asc;
相关推荐
淡定一生233330 分钟前
数据仓库建模方法
大数据·数据库·数据仓库
洛菡夕32 分钟前
MySQL故障排查与生产环境优化
数据库·mysql
gjc59244 分钟前
零基础OceanBase数据库入门(3):创建租户
数据库·oceanbase
l1t1 小时前
DeepSeek总结的 PostgreSQL 19:为 UPDATE/DELETE 添加 FOR PORTION OF 子句
大数据·数据库·postgresql
RestCloud1 小时前
如何用ETL实现多租户数据库的数据隔离与整合
数据库·数据仓库·etl·etlcloud·数据同步·数据集成平台·数据库传输
悢七1 小时前
单机部署 OceanBase 集群
数据库·ffmpeg·oceanbase
gjc5921 小时前
零基础OceanBase数据库入门(4):创建MySQL模式数据库
数据库·mysql·oracle·oceanbase
知识分享小能手1 小时前
MongoDB入门学习教程,从入门到精通,MongoDB创建副本集知识点梳理(10)
数据库·学习·mongodb
老衲提灯找美女1 小时前
数据库事务
java·大数据·数据库
会飞的大可1 小时前
Redis 竞品与替代方案选型可行性分析报告
数据库·redis·缓存