SQLite:对两列

时间:2016-01-06 21:25:36

标签: sqlite

SQLite的初学者问题。

我有一张表:

CREATE TABLE raw (ID int, t int, VarID Int,  val float)
INSERT INTO raw VALUES (1, 77 , 1,177)
INSERT INTO raw VALUES (2, 77 , 2,277)
INSERT INTO raw VALUES (3, 12 , 1,112)
INSERT INTO raw VALUES (4, 12 , 2,212)
INSERT INTO raw VALUES (5, 55 , 2,255)

此处t是时间戳,VarID表示后续val所属的变量。

现在我想得到一个视图,其中所有变量都在不同的列中,例如:

t   var1   var2
77  177    277
12  112    212
55  None    255

仅供参考:

这是与Reorganising Data in SQLLIte)相反的问题

我试过的一些代码没有得到想要的结果

CREATE VIEW  view1 
AS SELECT 
t,
(SELECT val FROM raw WHERE VarID=1) as var1,
(SELECT val FROM raw WHERE VarID=2) as var2
FROM raw as r;

1 个答案:

答案 0 :(得分:0)

有了Avi Gurfinkel(分组)的暗示,我提出了以下解决方案。这是最好的方式还是有更优雅的方法来做到这一点?

CREATE VIEW view1 
AS SELECT 
t,
(SELECT  val FROM raw WHERE (varID=1 and r.t=raw.t)) as var1,
(SELECT  val FROM raw WHERE (varID=2 and r.t=raw.t)) as var2
FROM raw as r
GROUP BY t;