gpt4 book ai didi

sql - 通过 SQL 根据相同的行组分配组名

转载 作者:行者123 更新时间:2023-11-29 14:34:46 25 4
gpt4 key购买 nike

我有一张 table (可能最终会使用 Postgres)

这是输入的样子。

enter image description here

我想根据相同的标准将产品放入最终分组。例如 prod-A、prod-B、prod-X 都属于同一组,因为它们的条件行相同。 (不能部分匹配)。

因此我希望输出是这样的

enter image description here任何帮助将不胜感激。谢谢!

最佳答案

这回答了被标记为 Postgres 的问题的原始版本。

我认为最简单的方法是聚合数据,然后分配组:

select product, dense_rank() over (order by criterias) as grp
from (select product, array_agg(criteria order by criteria) as criterias
from t
group by product
) p;

如果你在原始数据上需要这个,你可以加入:

select t.*, tt.grp
from t join
(select product, dense_rank() over (order by criterias) as grp
from (select product, array_agg(criteria order by criteria) as criterias
from t
group by product
) p
) tt
on t.product = tt.product;

你甚至不需要额外的子查询:

select t.*, tt.grp
from t join
(select product, dense_rank() over (order by criterias) as grp
from (select product,
dense_rank() over (order by array_agg(criteria order by criteria)) as criterias
from t
group by product
) p
) tt
on t.product = tt.product;

关于sql - 通过 SQL 根据相同的行组分配组名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46900470/

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