假设我有一个带有下表的数据库:
--------------------------
id | arg1 | arg2 | arg3
--------------------------
1 | 7 | 3 | 9 |
2 | 5 | 9 | 5 |
假设我想做一个求和查询,计算一些计算,比如:
SELECT SUM( ( arg1 + arg2 + arg3 ) / ( arg1 + arg2 + arg3 ) * ( arg1 + arg2 + arg3 ) )
如果有办法存储 ( arg1 + arg2 + arg3 )
在一个变量中(比如说 arg_sum
),然后我们可以做:
SELECT SUM( arg_sum / arg_sum * arg_sum )
我知道这是一个非常做作的例子,但我遇到过现实世界中的场景,如果我能将方程存储在变量中并重用它们,它会让事情变得更可读。有可能吗?
像这样的事情(除非我不想 added
包括在结果集中):
SELECT SUM( arg1 + arg2 + arg3 ) as arg_sum, SUM( arg_sum / arg_sum * arg_sum ) FROM my_table;
3条答案
按热度按时间gjmwrych1#
您可以使用这样的临时表:
假设主表的名称是
args
```CREATE TEMPORARY TABLE TempSums
SELECT
args.id,
arg1 + arg2 + arg3 as
sum
from argsSELECT SUM( (
sum
) / (sum
) * (sum
) ) FROM TempSumsvyu0f0g12#
您可以使用compute来计算它们的值,并在“from”子句中使用的表表达式中命名它们。例如:
结果:
yrwegjxp3#
举个例子。。。