我有一个T-SQL语句试图使用静态总和获得百分比。
这是一个例子
select a.col1, a.col2, a.col1/b.col2Sum FROM (
Select SUM(col2) FROM (
Select col1, col2 FROM SomeTable
) As a
) as b
这不会执行并告诉我a是无效对象。我怎样才能到达那个嵌套表,或者2使用静态求和代替表b?
虽然在此示例中col1和2是简单语句,但假设它们是半复数聚合而不是简单的选择列。
编辑示例以匹配答案:
select col1,col2,col3,col4,col5, col4/(SELECT SUM(col4) FROM U) as uPercent FROM(
select col1,col2,col3,col4,col5 FROM SomeTable) as U
我得到无效的对象名称U
另外,为了清楚起见,在外部查询中,我不能从SomeTable中选择col1,col2等,因为这些列是聚合和复杂的逻辑。
答案 0 :(得分:1)
如果您尝试计算列总数的百分比,那么您可以使用子查询来完成...这样的事情:
SELECT col1, col2,
col1/(
SELECT SUM(col2)
FROM SomeTable
)
FROM SomeTable