这是我的桌子:

websit_id updated_at display_id
1222 03-06 06:00 apple
1222 03-06 08:00 apple
1222 03-06 10:00 carrot
1222 03-06 12:00 apple
1222 03-06 14:00 fig
1234 03-06 06:00 apple
1234 03-06 08:00 peach

我想给这些行加标签,以便它将紧挨着彼此的相同显示ID分组,但如果btw中有其他内容,则不会对它们进行分组.

所需的输出应如下所示:

websit_id updated_at display_id group_label
1222 03-06 06:00 apple 1
1222 03-06 08:00 apple 1
1222 03-06 10:00 carrot 2
1222 03-06 12:00 apple 3
1222 03-06 14:00 fig 4
1234 03-06 06:00 apple 1
1234 03-06 08:00 peach 2

我用snowflake来做这件事.

推荐答案

您可以创建一个标志来指示当前的display_id是否与前一个相同,然后对其运行累加和以创建组

with cte as

(select *, case when display_id = lag(display_id) over (partition by websit_id order by updated_at) then 1 else 0 end as flag
from mytable)

select *, sum(flag) over (partition by websit_id order by updated_at) as group_label --add 1 if you want groups to start at 1 instead of 0
from cte;

Sql相关问答推荐

Android房间fts4匹配语法AND OR

如何在snowflake中进行SQL的反向填充

如何利用单列历史SQLsnowflake获得合并结果

PostgreSQL 9.6嵌套的INSERT/RETURN语句的CTE性能低得令人无法接受

如何计算一个用户S的日常连胜?

snowflake/SQL嵌套的JSON对象和数组

在SQL中为两个日期之间的每个日期添加行

Redshift PL/pgSQL循环中的参数化列名

ColdFusion+Docker:未安装SQLSERVER包

在Netezza SQL中将字符DataType转换为整型DataType

在SQL中将项分配给容器

按二维数组的第一个元素排序

给定 3 个键列,从一个表中 Select 另一表中不存在的所有数据

使用多个数据库调用重载 CQRS 模式

错误:postgresql 中缺少表评级的 FROM 子句条目

每组使用平均值来填补缺失值的SQL

自动生成计算频率的列

编写查询以根据级别 (p2) 返回父位置

SQLite 中的过滤运行总和视图

具有关联统计信息 N+1 的 Rails 6 索引资源?