Python、SQL或SAS如何在一列和另一列中找到相似和相等的值

2024-05-23 21:07:31 发布

您现在位置:Python中文网/ 问答频道 /正文

| num_A | num_B | name                      | birth_date | id |
|-------|-------|---------------------------|------------|----|
| 1234  | abcd  | M Rita Costa Santos       | 01/01/2000 | 1  |
| 3333  | uvwx  | M Rita Costa Santos       | 01/01/2000 | 1  |
| 5678  | efgh  | Maria Rita C Santos       | 01/01/2000 |    |
| 9101  | ijkl  | Rita Costa Santos         | 01/01/2000 | 1  |
| 1111  | mnop  | Maria Leonor Santos Silva | 02/03/2001 |    |
| 2222  | qrst  | Leonor Santos Silva       | 02/03/2001 | 2  |
| 4444  | yzab  | Leonor Santos Silva       | 30/08/1999 |    |

假设我有这个表1,但规模很大。我想在“名称”列中找到相似和相等的值,如果它们相似/相等,请转到“出生日期”列,查看它们是否相等。如果是,则为这种情况创建相同的id。因此,我希望最终输出如表2所示:

| num_A | num_B | name                      | birth_date | id |
|-------|-------|---------------------------|------------|----|
| 1234  | abcd  | M Rita Costa Santos       | 01/01/2000 | 1  |
| 3333  | uvwx  | M Rita Costa Santos       | 01/01/2000 | 1  |
| 5678  | efgh  | Maria Rita C Santos       | 01/01/2000 | 1  |
| 9101  | ijkl  | Rita Costa Santos         | 01/01/2000 | 1  |
| 1111  | mnop  | Maria Leonor Santos Silva | 02/03/2001 | 2  |
| 2222  | qrst  | Leonor Santos Silva       | 02/03/2001 | 2  |
| 4444  | yzab  | Leonor Santos Silva       | 30/08/1999 | 3  |

先谢谢你


Tags: nameiddatenumsilvabirthabcdmaria
1条回答
网友
1楼 · 发布于 2024-05-23 21:07:31

我认为稠密的_RANK()函数可以解决您的问题

SELECT
   num_A,
   num_B,
   name,
   birth_date,
   DENSE_RANK() OVER(ORDER BY birth_date) AS rank
FROM Table1

Result from query above

相关问题 更多 >