gpt4 book ai didi

sql - SQLite3中的窗口函数

转载 作者:行者123 更新时间:2023-12-03 18:43:54 25 4
gpt4 key购买 nike

下面的Oracle SQL select允许我选择根据某些字段重复的表的所有行,例如,它们具有相同的COLUMN_1COLUMN_2COLUMN_3

SELECT  *
FROM (
SELECT t.*, ROW_NUMBER() OVER (PARTITION BY COLUMN_1, COLUMN_2, COLUMN_3 ORDER BY COLUMN_1) AS rn
FROM MY_TABLE t
)
WHERE rn > 1;


如何在sqlite3中做同样的事情?

最佳答案

您可以使用rowid和相关的子查询:

select t.*
from (select t.*,
(select count(*)
from my_table t2
where t2.column_1 = t.column_1 and t2.column_2 = t.column_2 and
t2.column_3 = t.column_3 and t2.rowid <= t.rowid
) as seqnum
from my_table t
) t
where seqnum > 1;


如果表中有一个唯一键,则可以使用任何唯一键代替 rowid

关于sql - SQLite3中的窗口函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49069627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com