我想基于+---+--------------------+
| id| vec|
+---+--------------------+
| 0|[3, 4, 5, 6] |
| 1|[3, 4, 5, 6] |
+---+--------------------+
函数删除重复项
How to get get Unique Records based on multiple columns from a table
。但是被语法错误阻止了。
我的用例如下:
和我的sql如下:
row_number
但它告诉我:
near“(”:语法错误:
我不知道发生了什么,我做了一些搜索,例如How to use ROW_NUMBER in sqlite 。不幸的是,我仍然无法弄清楚我犯了什么错误。什么都会升值。
答案 0 :(得分:1)
如评论中所述,SQLite不支持row_number()
或其他窗口函数。您可以使用相关子查询:
select d.*
from demo d
where d.creator = (select max(d2.creator) from demo d2 where d2.id = d.id);
使用demo(id, creator)
上的索引,即使在支持row_number()
的数据库中,这通常也会有更好的表现。
答案 1 :(得分:1)
自window functions起,SQLite支持version 3.25,因此原始查询现在应该可以使用。
答案 2 :(得分:0)
改为使用subquery
:
select d1.*
from demo d1
where primarykey = (select d2.primarykey
from demo d2
where d2.id = d1.id
order by d2.creator desc
LIMIT 1);