gpt4 book ai didi

sql - 如何更新 n 行分区中的日期列?

转载 作者:行者123 更新时间:2023-11-29 13:21:28 25 4
gpt4 key购买 nike

我正在尝试更新我的日期字段。
表结构如下:

date           id 
2016-11-14 1
2016-11-14 2
2016-11-14 3
2016-11-14 4
-
-
-
2016-11-14 100

如何更新前十条不同日期的记录,后十条不同日期的记录等等?

最佳答案

UPDATE tbl t
SET "date" = date '2016-11-14' + sub.rn::int / 10 -- integer division
FROM (
SELECT id, row_number() OVER (ORDER BY id) AS rn
FROM tbl
) sub
WHERE t.id = sub.id;

子查询计算一个无间隙的行号,因为您的问题中没有任何内容说明 id 实际上保证没有间隙。

您只需将 integer 添加到实际的 date 即可添加天数。 (忘记在我的第一个版本中转换为 int。)

对于 timestamp,请改用:

timestamp '2016-11-14' + interval '1 day' * (sub.rn / 10)

关于sql - 如何更新 n 行分区中的日期列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40815126/

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