我在SQLite3中有一个表,结构如下:
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的值。对于每个日期,每个类别只有一个值。即目标是选择具有以下值的两列:
Date NewValue(A/B)
------------ --------------
20160101 1.6667
20160102 2
20160103 2.3333
20160104 8
我试图通过创建一个临时表来解决这个问题,但是我得到了错误的值。
答案 0 :(得分:2)
您可以使用条件聚合或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';
一个警告:SQLite进行整数除法。因此,如果值是整数,则应使用以下内容:
select t.date, ta.value * 1.0 / tb.value