Android SQLite版本
我想检索表中每个聊天室id匹配的最后10行 这非常有效:Android SQLite版本,android,sql,sqlite,react-native,greatest-n-per-group,Android,Sql,Sqlite,React Native,Greatest N Per Group,我想检索表中每个聊天室id匹配的最后10行 这非常有效: SELECT * FROM (SELECT a.*, row_number() OVER (PARTITION BY a.chat_id ORDER BY a.timestamp DESC ) AS row FROM messages a ) AS foo WHERE row <= 10 但当我把这段代码放在我的React原生应用程序上时,它抛出并出错,这是因为它只
SELECT *
FROM
(SELECT a.*,
row_number()
OVER (PARTITION BY a.chat_id
ORDER BY a.timestamp DESC ) AS row
FROM messages a ) AS foo
WHERE row <= 10
但当我把这段代码放在我的React原生应用程序上时,它抛出并出错,这是因为它只在SQLite 3.25.0及更高版本中受支持
还有别的办法吗?我试图避免对SQL进行多个查询。一个选项是使用相关子查询来计算有多少记录具有相同的聊天id和比当前行更大的时间戳,并使用结果进行筛选:
select m.*
from messages m
where (
select count(*)
from messages m1
where m1.chat_id = m.chat_id and m1.timestamp > m.timestamp
) < 10
谢谢,这是我需要的。