2017-02-12 15 views
0

SQLの条件に基づいて、重複する列エントリをNULLにすることはできますか?SQLの条件に基づいて、重複した列エントリをNULLにすることはできますか?

Prod | service_type | Units | Total_prod_quantity 
--------------------------------------------------------------- 
Prod_1  Svc_type_1  20   100 
Prod_1  Svc_type_2  50   100 
Prod_1  Svc_type_3  30   100 
Prod_2  Svc_type_1  25   50 
Prod_2  Svc_type_2  25   50 

私はトータルサービスを計算しようとしている行レベルでのパーセンテージを添付して、私は右の数字(20/100 = 0.2、50/100 = 0.5)を取得します。しかし、製品レベルで全体のサービスアタッチパーセンテージを計算しようとすると、(20 + 50 + 30 + 100 = 1)ではなく(20 + 50 + 30)/(100 + 100 + 100)= 0.3 )。とにかく、次のような条件に基づいて列の重複エントリをnullにする方法はありますか?

Prod | service_type | Units | Total_prod_quantity 
--------------------------------------------------------------- 
Prod_1  Svc_type_1  20   100 
Prod_1  Svc_type_2  50   0 
Prod_1  Svc_type_3  30   0 
Prod_2  Svc_type_1  25   50 
Prod_2  Svc_type_2  25   0 
+0

それは常に '1'が返されます場合 - なぜ、まったく何を計算しますか? –

答えて

0

あなたは、テーブルのデータを変更することなく、次のように集約することができます。

select 
    prod, 
    sum(units)/max(total_prod_quantity) 
from table 
group by prod 
関連する問題