SQLite中仅当价格相同时按股票代码分组汇总股份数的实现方案咨询
实现方法解析
这个需求其实用SQLite的基础分组查询就能完美解决,核心思路就是同时按股票代码(ticker)和价格(price)进行分组,再对每组的股份数(shares)求和。
具体SQL语句
假设你的数据表名为stock_positions,可以用下面的查询:
SELECT ticker, price, SUM(shares) AS total_shares FROM stock_positions GROUP BY ticker, price;
为什么这样可行?
GROUP BY ticker, price会把所有ticker相同且price完全一致的记录归为同一组,而ticker相同但price不同的记录会被分到不同的组里。SUM(shares)会计算每组内的股份数总和,正好满足你“同股票同价格才合并股份”的要求。
举个例子验证:
原始数据:
ticker price shares AAPL 12 1 AAPL 12 2 AAPL 13 5
执行查询后得到的结果:
| ticker | price | total_shares |
|---|---|---|
| AAPL | 12 | 3 |
| AAPL | 13 | 5 |
完全符合你的需求:同ticker同price的记录合并了股份,price不同的则各自保留独立的条目。如果你的表名不是stock_positions,只需要把SQL里的表名替换成你实际使用的表名即可。
内容的提问来源于stack exchange,提问作者Terry Jung
相关产品推荐
相关产品推荐

