我需要从最早的日期获取起始余额,从月末获取结束余额,并按股票id分组。我的表:
id stock_id balance transact_at
1 1 100 2018-06-15
2 1 70 2018-06-16
3 1 30 2018-06-31
4 2 50 2018-06-01
5 2 10 2018-03-31
我想要输出:
stock_id start_balance ending_balance
1 100 30
2 50 10
3条答案
按热度按时间nxowjjhe1#
mysql中的一种方法是通过
stock_id
一次,找出开盘和收盘日期。然后,自联接两次,以提取在这些开始日期和结束日期发生的实际余额。演示
注意:为了子孙后代,当mysql 8+成为标准时,我们可以使用
ROW_NUMBER
在这里,可能更容易得到我们想要的结果。snz8szmq2#
试试这个。其中两个内部查询通过获取股票id对应的最小和最大交易量来获取期初余额和期末余额,然后父查询将这两个查询组合在一起以获得单行中的期初余额和期末余额。我也分享了小提琴下面的链接来尝试。
演示
57hvy0tb3#
试试这个。