SQLite:在两列中对数据进行排序
SQLite的初学者问题 我有一张像这样的桌子:SQLite:在两列中对数据进行排序,sqlite,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 r
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)
这里是一个时间戳,VarID指示后续val所属的变量
现在我想得到一个视图,其中所有变量都在单独的列中,如:
t var1 var2
77 177 277
12 112 212
55 None 255
仅供参考:
这是与之相反的问题
我尝试过的一些代码没有得到期望的结果
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;
根据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;
您自己尝试过任何代码来完成此任务吗?当然可以:我只获得了代码创建视图1作为选择t,从r中选择val,其中r.VarID=1作为var1,从r中选择val,其中r.VarID=2作为var2,从raw作为r;由于我理解的原因,它没有显示所需的行为。请将您的评论中的代码包含在您的问题中,格式为?完成。包括注释代码的小修改,以使其可执行我认为您可以按t分组,然后转置表如果varID/t组合是唯一的,则子查询中的group by子句是多余的。