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”。