Sql 是否可以使用两行的输出来计算第三行

Sql 是否可以使用两行的输出来计算第三行,sql,sql-server,Sql,Sql Server,现在我想添加另一列,即“保证金百分比”,即 利润/销售额。 我怎样才能不重新计算利润和销售额呢? 因此,输出表将为: SELECT ....... ---a long calculation-- AS MARGIN, ---calculation--- AS SALES FROM ..... where ..... GROUP BY ..... order by REV desc; 将当前查询包装到派生表中(即子查询)。对其结果进行百分比计算 | Margin | SA

现在我想添加另一列,即“保证金百分比”,即 利润/销售额。 我怎样才能不重新计算利润和销售额呢? 因此,输出表将为:

SELECT .......

---a long calculation-- AS MARGIN,

---calculation--- AS SALES

FROM          .....
where .....
GROUP BY .....
order by REV desc;

将当前查询包装到
派生表中(即子查询)。对其结果进行百分比计算

| Margin | SALES | Margin percent

--交叉应用/横向如果不支持,那么使用子查询包装将有助于您了解您使用的数据库“sql”有多种风格,每个dbms供应商都有自己的配方。如果dbms支持窗口函数,或者
交叉应用
横向连接
,则可以使用窗口函数,所有这些都取决于使用ms sqldt的dbmsi“m只是一个表别名。不应该需要,但某些产品需要它。您可以尝试不使用它,或者选择另一个表别名。
select margin, sales, margin * 100.0 /sales
from
(   
    SELECT .......

    ---a long calculation-- AS MARGIN,

    ---calculation--- AS SALES

    FROM          .....
    where .....
    GROUP BY .....
) dt