2

実際、私のクエリは次のようなものです:

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

pb は、各 ABS() が実際には複雑な計算であり、最後の columnTotal 魔女を各 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

可能かどうかわからない

4

4 に答える 4

2

はい、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;
+---------+---------+---------+-------------+
| | 列 1 | 列 2 | 列 3 | 列合計 |
+---------+---------+---------+-------------+
| | 50 | 40 | 60 | 150 |
+---------+---------+---------+-------------+
セットで 1 行 (0.00 秒)
于 2013-08-27T13:06:13.323 に答える
0

次のように、もう 1 つのレイヤーでラップできます。

select columnA, columnnB, columnnC, columnnD, (columnA+ columnnB+ columnnC+ columnnD) total
from 
(
SELECT ABS(20-80) columnA , ABS(10-70) columnB ,
ABS(30-70) columnC , ABS(40-70) columnD , etc..
)
于 2013-08-27T13:05:21.057 に答える
0
SELECT t.*, (columnA+columnB...) as total
FROM (
    SELECT ABS(20-80) columnA , ABS(10-70) columnB, ABS(30-70) columnC , ABS(40-70) columnD 
    ...
) as t
于 2013-08-27T13:06:06.833 に答える
0

派生テーブルを使用する:

SELECT
    columnA , columnB ,
    columnC , columnD ,
    SUM(columnA+columnB+columnC+columnD) columnTotal 
FROM
 (
   SELECT
       ABS(20-80) columnA , ABS(10-70) columnB ,
       ABS(30-70) columnC , ABS(40-70) columnD 
   FROM ...
 ) AS dt
于 2013-08-27T13:07:27.357 に答える