Tsql 表创建中的SQL多重计算

Tsql 表创建中的SQL多重计算,tsql,sql-insert,Tsql,Sql Insert,我正在尝试创建一个包含多个计算的表 我有一个基表,我想从中收集数据并插入到新表中。下一列是基于基表计算的。所以前几列是基于原始表的,其中一部分完全相同,另一部分是计算出来的 这些工作正常,但最后两列不正常。这些值的计算将基于新表的计算字段 能一步解决吗?我应该使用更新吗?据我所知,排名与此无关 INSERT INTO [RAW_NBA_TeamSimpleRating] ( [Team] ,[Game_total] ,[ORtg_avg] ,[DR

我正在尝试创建一个包含多个计算的表

我有一个基表,我想从中收集数据并插入到新表中。下一列是基于基表计算的。所以前几列是基于原始表的,其中一部分完全相同,另一部分是计算出来的

这些工作正常,但最后两列不正常。这些值的计算将基于新表的计算字段

能一步解决吗?我应该使用更新吗?据我所知,排名与此无关

INSERT INTO [RAW_NBA_TeamSimpleRating]
(
      [Team]
      ,[Game_total]
      ,[ORtg_avg]
      ,[DRtg_avg]
      ,[ORtg_rank]
      ,[ORtg_cluster]
 
      )
SELECT
    [Team]
    ,[Game]
    ,AVG ([ORtg]) OVER (PARTITION BY Team ORDER BY RowNumber rows between 81 preceding and current row) as ORtg_avg
    ,AVG ([DRtg]) OVER (PARTITION BY Team ORDER BY RowNumber rows between 81 preceding and current row) as DRtg_avg

    ,RANK () OVER (PARTITION BY [RAW_NBA_TeamSimpleRating].[Game_total] ORDER BY [RAW_NBA_TeamSimpleRating].[ORtg_avg] Desc)

    ,CASE
        WHEN RANK () OVER (PARTITION BY [RAW_NBA_TeamSimpleRating].[Game_total] ORDER BY [RAW_NBA_TeamSimpleRating].[ORtg_avg] DESC) > 10 THEN 'Bottom'
        WHEN RANK () OVER (PARTITION BY [RAW_NBA_TeamSimpleRating].[Game_total] ORDER BY [RAW_NBA_TeamSimpleRating].[ORtg_avg] DESC) <= 10 THEN 'TOP'
    END

FROM [WRK_NBA_TeamTable]    
插入[RAW\u NBA\u teamSimpling]
(
[小组]
,[游戏总数]
,[ORtg_平均值]
,[DRtg_平均值]
,[ORtg_等级]
,[ORtg_集群]
)
挑选
[小组]
,[游戏]
,平均值([ORtg])超过(按团队顺序划分,按前一行和当前行之间的行数行)作为ORtg_平均值
,平均值([DRtg])超过(按团队顺序按前一行和当前行之间的行数行划分)作为DRtg_平均值
,排名()超过(按[RAW_NBA_TeamSimpling].[Game_total]按[RAW_NBA_TeamSimpling].[ORtg_avg]Desc进行划分)
案例
当排名()超过(按[RAW_NBA_TeamSimpling].[Game_total]划分,按[RAW_NBA_TeamSimpling].[ORtg_avg]DESC排序)10时,则为“底部”

当排名()超过(按[RAW_NBA_TeamSimpling].[Game_total]按[RAW_NBA_TeamSimpling].[ORtg_avg]DESC划分)时如果包装查询,可以使用内部选择的值,例如

select Team, Game, ORtg_avg, DRtg_avg, [Rank],
    case
      when [Rank] > 10 then 'Bottom'
      when [Rank] <= 10 then 'TOP'
   end as ORtg_cluster
from (
    select Team, Game
        ,Avg (ORtg) over (partition by Team order by RowNumber rows between 81 preceding and current row) as ORtg_avg
        ,Avg (DRtg) over (partition by Team order by RowNumber rows between 81 preceding and current row) as DRtg_avg
        ,Rank () over (partition by RAW_NBA_TeamSimpleRating.Game_total order by RAW_NBA_TeamSimpleRating.ORtg_avg desc) as [Rank]
    from WRK_NBA_TeamTable  
)s
选择团队、游戏、ORtg_平均值、DRtg_平均值,[排名],
案例
当[Rank]>10时,则为“底部”

当[Rank]你只需要用一个外部选择来包装你的查询-即一个
派生表
你得到任何消息了吗?把
ORtg_cluster
设置为一个怎么样?是的,错误消息是:多部分标识符“RAW_NBA_teamSimpling.Game_total”无法绑定。我想问题与以前相同:无法绑定多部分标识符“RAW\u NBA\u teamsimpling.Game\u total”。