gpt4 book ai didi

相当于 ROW_NUMBER 的 SQLITE

转载 作者:IT王子 更新时间:2023-10-29 06:31:52 26 4
gpt4 key购买 nike

我在 SQLite 中有一个表

/* Create a table called NAMES */
CREATE TABLE EVENTS(Id integer , Eventtype integer,value integer,Timestamp DATETIME);

/* Create few records in this table */
INSERT INTO EVENTS VALUES(1,2,1,'2009-01-01 10:00:00'); --ROW1
INSERT INTO EVENTS VALUES(1,2,2,'2007-01-01 10:00:00'); --ROW2
INSERT INTO EVENTS VALUES(2,2,3,'2008-01-01 10:00:00’); --ROW3

查询需要的是ROW1和ROW3。对于重复的 ID 和事件类型组合,查询应该采用最新的基于行的时间戳。ROW1 和 ROW2 具有相同的事件类型和 ID,但 ROW1 是最新的,因此应该选择它。

最佳答案

在 SQLite 3.7.11 或更高版本中,您可以使用 GROUP BY 和 MAX() 来选择要返回组中的哪一行:

SELECT *, MAX(timestamp)
FROM events
GROUP BY id, eventtype

在早期版本中,您必须使用子查询(如您的回答)查找组中最大行的一些唯一 ID。

关于相当于 ROW_NUMBER 的 SQLITE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25616867/

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