首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ID添加到两列中的重复项

将ID添加到两列中的重复项
EN

Stack Overflow用户
提问于 2019-02-05 16:21:01
回答 1查看 45关注 0票数 1

我有一张代表城市间贸易往来的表格,我想添加一个id来表示同一产地/目的地和目的地/原产地相同的组。

例如:

代码语言:javascript
复制
| origin | destination
|--------|------------
| 8      | 2
| 2      | 8
| 8      | 2
| 8      | 5
| 8      | 5
| 9      | 1
| 1      | 9

将成为:

代码语言:javascript
复制
| id | origin | destination
|----|--------|------------
| 0  | 8      | 2
| 0  | 2      | 8
| 0  | 8      | 2
| 1  | 8      | 5
| 1  | 8      | 5
| 2  | 9      | 1
| 2  | 1      | 9

我可以有相同的来源/目的地,但我也可以有原产地/目的地=目的地/原产地,我希望所有这些群体都能被识别出来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-05 16:33:08

一种方法:使用窗口函数dense_rank()LEAST

代码语言:javascript
复制
SELECT dense_rank() OVER (ORDER BY GREATEST(origin, destination)
                                 , LEAST   (origin, destination)) - 1 AS id
     , origin, destination
FROM   trade;

db<>fiddle https://dbfiddle.uk/?rdbms=postgres_11&fiddle=84e9a5d9ccd980b2c489882a2d62f791

- 1以0开头,就像您的示例一样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54538725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档