【发布时间】:2022-11-10 01:57:58
【问题描述】:
我正在计算 3 个新字段,其中计算 #2 取决于计算 #1,计算 #2 取决于计算 #3。
我想为这些计算设置别名以创建更简洁的解决方案,但我不确定如何引用多个别名。如果我只有 2 次计算,我知道我可以创建一个子查询并在上层引用我的别名。但是,我不确定如何通过 3 次计算来做到这一点。我会加入子查询吗?
下面的表示(当前代码在尝试在别名中引用别名时会遇到错误。)
DECLARE @myTable AS TABLE([state] VARCHAR(20), [season] VARCHAR(20), [rain] int, [snow] int, [ice] int)
INSERT INTO @myTable VALUES ('AL', 'summer', 1, 1, 1)
INSERT INTO @myTable VALUES ('AK', 'summer', 3, 3, 1)
INSERT INTO @myTable VALUES ('AZ', 'summer', 0, 1, 1)
INSERT INTO @myTable VALUES ('AL', 'winter', 5, 4, 2)
INSERT INTO @myTable VALUES ('AK', 'winter', 2, 2, 2)
INSERT INTO @myTable VALUES ('AZ', 'winter', 1, 1, 2)
INSERT INTO @myTable VALUES ('AL', 'summer', 6, 4, 3)
INSERT INTO @myTable VALUES ('AK', 'summer', 3, 0, 3)
INSERT INTO @myTable VALUES ('AZ', 'summer', 5, 1, 3)
select *,
ice + snow as cold_precipitation,
rain as warm_precipitation,
cold_precipitation + warm_precipitation as overall_precipitation,
cold_precipitation / sum(overall_precipitation) as cold_pct_of_total,
warm_precipitation / sum(overall_precipitation) as warm_pct_of_total
from @myTable
【问题讨论】:
标签: sql sql-server tsql