gpt4 book ai didi

sqlite group by 更新 max

转载 作者:行者123 更新时间:2023-12-01 16:24:53 25 4
gpt4 key购买 nike

我正在尝试对 SQLite 表进行更新,仅当该行具有该分组中特定列的最大值时才将列值设置为 1。

例如:按BookID分组,仅当BookVersion为max时才设置Latest=1。

BookID BookVersion 
==================
ABC 1
ABC 2
ABC 3
DEF 1

Output
BookID BookVersion Latest
==========================
ABC 1 0
ABC 2 0
ABC 3 1
DEF 1 1

我试过了

update Books set Latest=1 from Books INNER JOIN (select BookId, MAX(BookVersion) from Books GROUP BY BookId );

我收到:

SQL 错误:“from”附近:语法错误

有什么想法吗?

最佳答案

SQLite 不支持使用 join 进行更新。我认为您可以使用 where 子句做同样的事情:

update Books
set Latest = 1
where not exists (select 1
from books b2
where b2.bookid = Books.bookid and
b2.bookversion > Books.bookversion
);

这里的逻辑是“更新 bookid 没有更大版本号的行。”

关于sqlite group by 更新 max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24498432/

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