2017-03-22 11 views
0

GROUPAGE mysqlクエリの生成物は、次のようなテーブルです。派生テーブルのmysql集約

id  group  amount1  amount2 
01  A   500 
01  B   340 
01  C   190 
02  A      270 
02  B      440 
02  C      110 

これで、私はこの結果に対して新しいクエリを実行したいと思います。

group  amount1  amount2 
A   500   270 
B   340   440 
C   190   110 

私は私のクエリ内の派生テーブルT元を作成する場合、どのように私は、このような結果を達成しなければならない場合は見て不可欠なクエリがあります。

これは複雑なクエリではないかもしれませんが、私はまだmysql構文に追いついています。ヘルプpls。?

答えて

0

ものの記述あまりにも明確ではない、私はあなたが、あなたはそれが十分だ場合にも、MAXまたはMINを使用することができ

select 
    `group`, 
    sum(amount1), 
    sum(amount2) 
from 
    (your query that creates derived table) as t 
group by 
    `group` 

、このような構文を使用することができますしたいの結果を達成するために、そうgroup by with rollup

のようななめらかを使用すると仮定あなたのために(実際には任意の集計関数)

+0

答えが分かりました。私はすでに軌道に乗っていましたが、SUM()を整数クエリで使用していましたので、派生テーブルから1行しか選択していませんでした。どうもありがとう。 –

1

自己結合はできますか?構文はチェックされていませんが、これは何か?

SELECT 
    d1.`group`, d1.`amount1`, d2.`amount2` 
FROM derivedtable as d1 
JOIN derivedtable as d2 ON d1.`group` = d2.`group`; 

また、GROUP BYを実行する可能性もありますか?

SELECT `group`, max(`amount1`), max(`amount2`) FROM `derivedtable` GROUP BY `group`; 

max aggregate関数は、最初のNULL以外の値を強制します。

+0

私のために実装するのは難しいですが、Btグループはうまく動作します。 –

関連する問題