2017-12-17 14 views
0

の列を分離するために「によってグループ」によって生成単一フィールドの結果行は、現在、私はこのような何か(2結果行)を取得変換:私はこのような何かを取得したいと思い、1つの結果行

type|totalUnits 
N | 111 
E | 67 

をしかし、 (1結果行):

totalUnitsN|totalUnitsE|totalOfBothNandE 
111  |67   | 178 

私は第2実施例に最初の例を変換するために使用できるいくつかの便利な/推奨SQL-スニペットが存在しますか?基本的に、最初の例は、型フィールドに基づいてすべてのデータをグループ化し、次にその合計1つのtotalUnitフィールドに約20列を加算することによって生成されます。基本的には、私はそのままにしておきたいと思うし、何とかそのデータをただ一つの行に変換/マージする。しかし、これに最善のアプローチが私の現在の最初のステップを含んでいないなら、私はこれを完全にゼロからコーディングすると考えることができます。

答えて

2

条件付き集約は、単純なようだ:

select sum(case when type = 'N' then totalUnits else 0 end) as totalUnits_N, 
     sum(case when type = 'E' then totalUnits else 0 end) as totalUnits_E, 
     sum(totalUnits) as totalUnits 
from t 
where type in ('N', 'E'); 
+0

おかげで、私は確かにあなたのアイデアを使用することができると思います。基本的に私はあなたの例の "from"を、サブクエリとして使用している現在のSQL(型を基にしてグループを使用して行を区切るためにNとEの合計を数える)で置き換えます。 – Vka

関連する問題