admin

可以在mysql上计算别名结果

sql

其实我的查询是这样的:

SELECT ABS(20-80) columnA , ABS(10-70) columnB ,
ABS(30-70) columnC , ABS(40-70) columnD , etc..

pb是每个ABS()实际上是一个复杂的计算,我需要添加最后一列总计是每个ABS()的SUM,我想以一种方式做到这一点而无需重新计算所有值。我想要实现的是:

SELECT ABS(20-80) columnA , ABS(10-70) columnB ,
ABS(30-70) columnC , ABS(40-70) columnD , SUM(columnA+columnB+columnC+columnD) columnTotal

。预期的结果如下所示:

 columnA    columnB    columnC    columnD    columnTotal
  60         60          40         30          190

不知道有没有可能


阅读 172

收藏
2021-06-07

共1个答案

admin

是的,在MySQL中,您可以按照以下方式进行操作:

SELECT 
  @a:=ABS(40-90) AS column1, 
  @b:=ABS(50-10) AS column2, 
  @c:=ABS(100-40) AS column3, 
  @a+@b+@c as columnTotal;
+---------+---------+---------+-------------+
| column1 | column2 | column3 | columnTotal |
+---------+---------+---------+-------------+
|      50 |      40 |      60 |         150 |
+---------+---------+---------+-------------+
1 row in set (0.00 sec)
2021-06-07