Sqlite3列分区

时间:2016-05-29 16:43:24

标签: sqlite

我在sqlite3 db文件中有以下列(FirstCol,SecondCol,ThirdCol):

1  Inside   100
1  Outside  200
2  Inside   46  
2  Outside  68

第一列的类型为INT,第二列的类型为TEXT,第三列的类型为INT。

对于每个FirstCol值(在这种情况下只有1和2),我需要获得与Outside / Inside相关的值的结果,也就是说200/100,其中FirstCol = 1和68/46,其中FirstCol = 2 。

我不介意这是通过单个查询还是通过创建新表来完成的,我只需要这个结果。

感谢。

1 个答案:

答案 0 :(得分:0)

您必须使用correlated subqueries

查找不同行的值
SELECT FirstCol,
       (SELECT ThirdCol
        FROM MyTable
        WHERE FirstCol = T.FirstCol
          AND SecondCol = 'Outside'
       ) /
       (SELECT ThirdCol
        FROM MyTable
        WHERE FirstCol = T.FirstCol
          AND SecondCol = 'Inside'
       ) AS Result
FROM (SELECT DISTINCT FirstCol
      FROM MyTable) AS T;