将MySQL别名字段添加到一起
考虑类似于以下内容的查询:将MySQL别名字段添加到一起,sql,mysql,Sql,Mysql,考虑类似于以下内容的查询: SELECT sum(EXPR) as total, sum(EXPR) as total2, sum(total+total2) as grandtotal FROM tablename 这将显示字段列表中的未知列总数 在计算中引用别名字段而无需重新键入求和表达式,因为两边的sum(EXPR)非常长。以下是在数据库引擎中执行操作的顺序 注意,这是一个关于如何执行事情的语义视图,数据库可能以不同的顺序执行事情,但它必须产生结果
SELECT sum(EXPR) as total,
sum(EXPR) as total2,
sum(total+total2) as grandtotal
FROM tablename
这将显示字段列表中的未知列总数
在计算中引用别名字段而无需重新键入求和表达式,因为两边的
sum(EXPR)
非常长。以下是在数据库引擎中执行操作的顺序
注意,这是一个关于如何执行事情的语义视图,数据库可能以不同的顺序执行事情,但它必须产生结果,就好像它是这样做的一样
...
FROM tablename
) AS x
^-+^
|
+-- add this
某些数据库引擎也不允许在子查询别名时使用关键字AS,因此如果上述操作不起作用,请尝试以下操作:
...
FROM tablename
) x
^
|
+-- add this
对于您的tsql粉丝…您可以使用变量:
+1用于极端彻底性。是的,子查询需要使用别名。MySQL不支持WITH子句:@Lasse V.Karlsen:WITH子句不是特别支持TSQL-Oracle支持的非递归WITH,因为9i。我不关心WITH,答案是“为您TSQL粉丝”.我无法正确理解可能引发这样一个问题的思想混乱。我有机会检查我的答案,发现我错了。因此,我将其删除。谢谢你指出我的错误。不,你不能。见我对@kunal回答的评论。
...
FROM tablename
) x
^
|
+-- add this
SELECT total, total2, total + total2 as grandtotal from (
SELECT sum(EXPR) as total,
sum(EXPR) as total2,
FROM tablename
) x
SELECT
WITH Sums AS
(
SELECT sum(EXPR) as total,
sum(EXPR) as total2
FROM tablename
)
SELECT SUM(sums);