gpt4 book ai didi

sql - 使用 GROUP BY 和 COUNT 执行 SQL UPDATE

转载 作者:行者123 更新时间:2023-12-03 19:45:19 61 4
gpt4 key购买 nike

我正在使用 SQLite 数据库中的 SQL。我有一个看起来像这样的表:

STORAGE
------------------------------
REC_ID SEQ_NO NAME
------------------------------
100 1 plastic jar
100 2 glass cup
100 fiber rug
101 1 steel fork
101 wool scarf
102 1 leather boots
102 2 paintbox
102 3 cast iron pan
102 toolbox

请记住,与我在表中实际拥有的记录相比,这是非常少的记录。 我需要做的是更新表,以便将 SEQ_NO 为空值的所有记录设置为它们应该按顺序排列到具有相同 REC_ID 的记录组的实际编号。

这是我希望表格在更新后的样子:
STORAGE
------------------------------
REC_ID SEQ_NO NAME
------------------------------
100 1 plastic jar
100 2 glass cup
100 3 fiber rug
101 1 steel fork
101 2 wool scarf
102 1 leather boots
102 2 paintbox
102 3 cast iron pan
102 4 toolbox

例如,REC_ID 为 102 的记录的 SEQ_NO 应该为 4,因为它是 REC_ID 为 102 的第四条记录。

如果我做:
SELECT REC_ID, COUNT(*) FROM STORAGE GROUP BY REC_ID;

这将按 REC_ID 和与每个 ID 匹配的记录数(计数)返回所有记录,这也是我想要分配给每个 SEQ_NO 为空的记录的数字。

现在我将如何使用它们的计数值实际更新所有这些记录?

最佳答案

这应该工作:

update storage set 
seq_no=(select count(*) from storage s2 where storage.rec_id=s2.rec_id)
where seq_no is null

关于sql - 使用 GROUP BY 和 COUNT 执行 SQL UPDATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22288029/

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