【发布时间】:2021-02-01 02:26:44
【问题描述】:
我有一个 sqlite 表,其中的数据类似于以下内容:
id | flag
----+-----
1 | 0
2 | 0
3 | 1
4 | 0
5 | 1
6 | 0
7 | 1
我希望得到如下所示的结果:
id1 | id2
----+-----
1 | null
2 | null
3 | 5
4 | null
6 | null
7 | null
为了解释,我试图“组合”每“对”记录的 id(按顺序),其中“flag == 1”。如果记录具有“标志 == 0”,则 id2 应该为 NULL。另请注意,由于我有奇数条记录,其中“flag == 1”(在此示例中),最后一个(id = 7)没有额外的记录配对,所以它也有一个 id2 字段为 NULL。
这是否可以通过纯 SQL(在本例中为 sqlite3)实现?我显然可以在主机应用程序中对结果进行后处理,但希望不必这样做。
*** 编辑 ***
正在添加请求的 MRE...
CREATE TABLE test (
id INTEGER NOT NULL PRIMARY KEY,
flag INTEGER NOT NULL );
INSERT INTO test(flag) VALUES(0),(0),(1),(0),(1),(0),(1);
【问题讨论】:
-
当然可以。请按照您使用的标签 wiki 中的描述提供 MRE stackoverflow.com/tags/sqlite/info,以便更轻松地回答。
-
谢谢。添加了 MRE。
标签: sql sqlite window-functions