2017-05-28 8 views
0

からの基準に基づいて、1列の分割値Iは、次のような構造とSQLite3の中にテーブルを持っている:SQLiteの:他の列

Date     Category    Value 
------------   --------------  ------------- 
20160101    A      5 
20160101    B      3 
20160102    A      4 
20160102    B      2 
20160103    A      7 
20160103    B      3 
20160104    A      8 
20160104    B      1 

私の目標は、各日付のために私が分裂するようにテーブルから値を選択するのですカテゴリAの値とカテゴリBの値。私は各日付ごとに各カテゴリごとに1つの値を持っています。私。目標は、これらの値を持つ2つの列を選択することです:

Date     NewValue(A/B) 
------------   -------------- 
20160101    1.6667      
20160102    2      
20160103    2.3333      
20160104    8      

私は一時テーブルを作成することによってこの問題を解決することを試みたが、私は間違った値を取得します。

答えて

0

あなたは条件付き凝集やjoinを使用してこの操作を行うことができます。

select t.date, ta.value/tb.value 
from t ta join 
    t tb 
    on ta.date = tb.date and ta.category = 'A' and tb.category = 'B'; 

1つの警告:SQLiteのは、整数の除算を行います。したがって、値が整数の場合は、次のような値を使用してください。

select t.date, ta.value * 1.0/tb.value