假设数据记录的表名为"mytable",包含列"id"和"value",可以使用以下SQL语句取连续数字开始的第一条记录,并打上标记:

WITH temp AS (
  SELECT id, value, ROW_NUMBER() OVER (ORDER BY id) AS row_num
  FROM mytable
  WHERE id - ROW_NUMBER() OVER (ORDER BY id) = 0
)
UPDATE mytable
SET is_first = true
FROM temp
WHERE mytable.id = temp.id AND temp.row_num = 1;

这个SQL语句使用了一个公共表表达式(CTE)来创建一个名为"temp"的临时表,其中包含了按"id"排序后每行的行号(使用ROW_NUMBER函数)。在原始表中,只有当"id"减去行号等于0时,才可以确定这是一个连续数字开始的序列。因此,使用WHERE子句来筛选出这些行,并将它们的第一行打上标记。最后,使用UPDATE语句将标记更新回原始表中的"is_first"列。

我有一段数据记录怎么用pgsql取连续数字开始的第一条记录并打上标记

原文地址: https://www.cveoy.top/t/topic/btIk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录