私は彼に正しい質問をしたいと思いますが、集計された出力のセットを合計し、その順序を同時にフォーマットしたいと思います。集計された出力のセットを合計してその並びを同時にフォーマットする方法
サンプルテーブル:
Entity Type Value
A 1 200
B 1 500
C 0 350
B 0 150
D 0 200
C 1 100
A 1 50
A 1 350
D 1 100
E 1 150
予想される出力:
Entity diff_positive diff_negative
A 600
B 350
E 150
C 250
D 100
------------------------------
total 500 350
助けを借りて、私は結果から減算し、「Type'1' のすべてEntity'Aを合計することができました、タイプ '0'のEntity'A 'の合計この差が正または負である場所を示す表を同時に入力します。 現在、これは私が持っているものです。
select entity,
greatest(sum(case when type = 1 then value else - value end), 0) as diff_positive,
greatest(sum(case when type = 0 then value else - value end), 0) as diff_negative
from t
group by entity
ORDER BY diff-negative, entity ASC;
電流出力:
Entity diff_positive diff_negative
A 600
B 350
E 150
D 100
C 250
私が期待される出力に示されているように 'entity'D前に出現する' entity'Cが必要です。
また、合計を取得するには、私は以下のようにDiff-PositiveとDiff-Negativeをsum()しようとしました。
select entity,
sum(greatest(sum(case when type = 1 then value else - value end), 0) as diff_positive),
sum(greatest(sum(case when type = 0 then value else - value end), 0) as diff_positive)
from t
group by entity;
エラーが発生します。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'diff_positive), sum(greatest(sum(case when type = 0 then value else - value end), 0) as diff_negative)
私は私はこの時点から、それを把握することができるはずな感覚を持っている、しかし、私は、合計を取得するには
、あなたは 'を持っている;' 'by'グループの後、by''順序はselect文 – Rhumborl
@TimBiegeleisenの一部ではありませんので: 'type'がの値に依存するように見えます列(1 = + ve、0 = -ve)。なぜ、 'value'カラムが単に+ ve/-veとして保存されるのではなく、' type'カラムが削除されたのです。 – eggyal
@eggyal:それは単に私のデータプレゼンテーションの要件です。 –