我正在尝试对数据进行分组并计算整体的命中率。
分组有效,但我无法获得总音量。注释掉的行不能识别T。
SELECT P.[LiqProvider], P.[Volume],
-- P.[Volume]/(SELECT SUM([Volume]) FROM T)
FROM (
SELECT *
FROM (
SELECT A.[LiqProvider] ,COUNT(A.[ExecSignedAmount]) AS Trades, SUM(ABS(A.[ExecSignedAmount])) AS Volume
FROM (
SELECT [LiqProvider],[Symbol],[ExecSignedAmount]
FROM [BT].[LB].[FilledOrders]
WHERE [OrderDate] = '2018-07-02'
UNION ALL
SELECT [LiqProvider],[Symbol],[ExecSignedAmount]
FROM [BT].[LB2].[FilledOrders]
WHERE [OrderDate] = '2018-06-02'
) AS A
GROUP BY A.[LiqProvider]
) AS T
) AS P
答案 0 :(得分:0)
它可能和您指定的一样简单(AS卷),但是您注释掉的行试图找到[卷],如果这有意义,那么我最近才开始使用SQL,所以我不确定这似乎是什么我会检查。让我知道是否有帮助,谢谢。
答案 1 :(得分:0)
您的外部查询不知道任何T表。它知道一个P表。由于您既需要数量及其总和,因此应使用OVER:
SELECT P.[LiqProvider], P.[Volume], SUM(P.[Volume]) over ()
FROM.....(the rest of your code)