可能计算mysql的别名结果 [英] Is possible to count alias result on mysql
本文介绍了可能计算mysql的别名结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
其实我的查询是这样:
SELECT ABS(20-80)columnA,ABS(10-70)columnB ,
ABS(30-70)columnC,ABS(40-70)columnD等。
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
不知道是否可能
解决方案是的,在MySQL中,您可以这样做:
SELECT
@a: = ABS(40-90)AS column1,
@b:= ABS(50-10)AS column2,
@c:= ABS(100-40)AS column3,
@ @ b + @ c as columnTotal;
+ --------- + --- ------ + --------- + ------------- +
| column1 | column2 | column3 | columnTotal |
+ --------- + --------- + --------- + ------------- +
| 50 | 40 | 60 | 150 |
+ --------- + --------- + --------- + ------------- +
集合中的1行(0.00秒)
Actually my query is like this :
SELECT ABS(20-80) columnA , ABS(10-70) columnB , ABS(30-70) columnC , ABS(40-70) columnD , etc..
The pb is each ABS() is in fact some complex calculation , and i need to add a last columnTotal witch is the SUM of each ABS() , and i'd like to do that in one way without recalculate all . What i'd like to achieve is :
SELECT ABS(20-80) columnA , ABS(10-70) columnB , ABS(30-70) columnC , ABS(40-70) columnD , SUM(columnA+columnB+columnC+columnD) columnTotal
. The result expected look like this :
columnA columnB columnC columnD columnTotal 60 60 40 30 190
don't know if its possible
解决方案Yes, in MySQL you can do it like this way:
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)
这篇关于可能计算mysql的别名结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文