Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite:在两列中对数据进行排序_Sqlite - Fatal编程技术网

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

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)
这里是一个时间戳,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子句是多余的。