如何从Group By中的复杂子查询中获取值?

问题描述 投票:0回答:2

我正在尝试对数据进行分组并计算整体的百分比。

分组工作,但我不能得到总音量。注释掉的行不识别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
sql-server
2个回答
0
投票

它可能就像你指定的那样简单(AS Volume),但你的注释掉的行试图找到[Volume],如果这有意义我最近才开始使用SQL,所以我不确定这似乎是我要检查的东西。如果这有帮助,请告诉我,谢谢。


0
投票

您的外部查询不知道任何T表。它知道一个P表。既然你想要音量及其总和,你应该使用OVER:

SELECT P.[LiqProvider], P.[Volume], SUM(P.[Volume]) over ()
FROM.....(the rest of your code)
© www.soinside.com 2019 - 2024. All rights reserved.