当前位置: 首页 > news >正文

MySQL高阶2066-账户余额

目录

题目

准备数据

分析数据

总结


题目

请写出能够返回用户每次交易完成后的账户余额. 我们约定所有用户在进行交易前的账户余额都为0, 并且保证所有交易行为后的余额不为负数。

返回的结果请依次按照 账户(account_id), 日期( day ) 进行升序排序 .

准备数据

Create table If Not Exists Transactions (account_id int, day date, type ENUM('Deposit', 'Withdraw'), amount int)Truncate table Transactionsinsert into Transactions (account_id, day, type, amount) values ('1', '2021-11-07', 'Deposit', '2000')insert into Transactions (account_id, day, type, amount) values ('1', '2021-11-09', 'Withdraw', '1000')insert into Transactions (account_id, day, type, amount) values ('1', '2021-11-11', 'Deposit', '3000')insert into Transactions (account_id, day, type, amount) values ('2', '2021-12-07', 'Deposit', '7000')insert into Transactions (account_id, day, type, amount) values ('2', '2021-12-12', 'Withdraw', '7000')

分析数据

selectaccount_id, day,sum(case when type = 'Deposit' then amount else -amount end) over (partition by account_id order by day) balance
fromtransactions
order byaccount_id,day;

总结

使用开窗函数sum()计算不同的交易类型


http://www.mrgr.cn/news/41509.html

相关文章:

  • 小白必看web专题!AWVS漏洞扫描安装部署(全网最详细)
  • 消息队列RabbitMQ
  • overleaf的使用[12]:管理复杂文档结构
  • MySQL进阶篇 - 存储引擎
  • 【计算机科研方法指南】- 读书笔记《学术咸鱼自救指南》+于老师科研课
  • CSS文本外观属性(12个案例+代码实现+效果图)
  • ACP科普:SoS不是救命
  • mindsearch run 本地服务
  • 【网络安全 | Java代码审计】某Blog系统
  • vbs读取excel内容的代码-编辑代码,查找并在以下位置xls文件路径-供大家学习研究参考
  • 【AI知识点】向量空间(vector space)
  • ARTS Week 42
  • Go基础学习10-原子并发包sync.atomic的使用:CSA、Swap、atomic.Value......
  • 传知代码-一键找出图像中物体的角点(论文复现)
  • 《深度剖析:C++中实例化一个对象的必经阶段》
  • javaScript基础知识汇总
  • AR 领域的突破——微型化显示屏为主流 AR 眼镜铺平道路
  • 客厅落地台灯怎么摆放?五款客厅落地台灯款式分享
  • cGANs with Projection Discriminator
  • C0013.Clion中利用C++调用opencv打开摄像头