sql - 从同一级别查询中除以两个总和
问题描述
嗨,我想按 ATS_MPID 和 Trades_Last_Updated 分组来汇总份额,然后我想将两者相除(ATSSum / Trades_Last_UpdatesSum)。这就是我到目前为止所拥有的......谢谢
WITH symboltotals AS (
SELECT Symbol, SUM(Shares) AS SymTot, Trades_Last_Updated
FROM ATS AS S
GROUP BY Trades_Last_Updated, Symbol),
atstotals AS (
SELECT Symbol, ATS_MPID, SUM(Shares) as "ATSTotal"
FROM ATS AS A
GROUP BY ATS_MPID, Symbol)
SELECT *
FROM symboltotals, atstotals
WHERE symboltotals.Symbol = atstotals.Symbol
样本数据:
Symbol ATS_MPID Shares Trades_Last_Updated
A BIDS 317800 9/17/2018
A CROS 125508 9/17/2018
A BIDS 124300 9/10/2018
A CROS 117419 9/10/2018
我正在尝试获取所有交易股票的每个 ATS_MPID 的百分比。因此,将 BIDS 的符号 A 相加(9/17 和 9/10),对 CROS 执行相同的操作,然后将这些总数除以总份额,以查看它们的个人贡献百分比......即:(BIDS 9/17 的股份 + 股份出价 9/10) / 总股数
解决方案
根据数据和您的问题陈述,以下查询将有所帮助
create table yourtable(Symbol varchar(100), ATS_MPID varchar(100), Shares bigint, Trades_Last_Updated datetime);
insert into yourtable values
('A', 'BIDS', 317800, '9/17/2018')
,('A', 'CROS', 125508, '9/17/2018')
,('A', 'BIDS', 124300, '9/10/2018')
,('A', 'CROS', 117419, '9/10/2018');
select *,
percentage=(sum(shares) over (partition by Symbol, ATS_MPID)*100.00)/sum(shares) over (partition by Symbol)
--,percentagePerLastUpdated=(sum(shares) over (partition by Symbol, ATS_MPID, Trades_Last_Updated)*100.00)/sum(shares) over (partition by Symbol)
from yourtable
推荐阅读
- symfony - 在尊重 LoD 的同时检索 Symfony 应用程序中的当前用户
- python - 登录按钮功能
- python - 如何识别 xarray 中的时间、经度和纬度坐标?
- json - MongoDB 正则表达式字符串以开头和结尾
- javascript - 来自 Rails 控制器的 Javascript 响应导致 Uncaught SyntaxError: Unexpected token :
- sublimetext3 - 将视图切换到新文件
- python - “TypeError:'WebElement'对象不可迭代”错误代码python爬取
- reactjs - 在 nextjs 上集成 react-fontawesome
- python - Python Tika 无法从 url 解析 pdf
- ios - 成功解析 JSON 后,应该存储 JSON 的数组为空