SQLite:根据其他列

时间:2017-05-28 17:26:12

标签: sql sqlite select

我在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                    

我试图通过创建一个临时表来解决这个问题,但是我得到了错误的值。

1 个答案:

答案 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