gpt4 book ai didi

mysql - SQL Server : replace distinct values with ints when nested

转载 作者:行者123 更新时间:2023-11-29 21:02:31 25 4
gpt4 key购买 nike

针对 MySQL 进行编辑。

我在表中有一个嵌套的数据树,我需要对它们进行编号。找到不同的值、获取行号然后使用它很容易,因为我有一个嵌套树并且需要为每个级别执行此操作。

我的表格看起来像这样(我显示了三个级别,但实际上有四个或更多)

col1, col2, col3, some data cols ....
-----------------------------------
'AAA', 'AA', 'A', #####
'AAA', 'AA', 'B', #####
'AAA', 'AA', 'C', #####
'AAA', 'BB', 'D', #####
'AAA', 'BB', 'E', #####
'AAA', 'BB', 'F', #####
'BBB', 'CC', 'G', #####
'BBB', 'CC', 'H', #####
'BBB', 'CC', 'I', #####
'BBB', 'DD', 'J', #####
'BBB', 'DD', 'K', #####
'BBB', 'DD', 'L', #####

等等...

还有更多的数据,AAA代表一些字符串等

我需要的是对于 col1 中的每个不同值,替换(或放入新表中)值 1、2、3 等

然后,对于 col1 中的每个不同值,找到 col2 中的不同值并替换为 1、2、3 等。对 col3 重复上述操作。

要得到这样的东西

col1, col2, col3, some data cols ....
1, 1, 1, #####
1, 1, 2, #####
1, 1, 3, #####
1, 2, 1, #####
1, 2, 2, #####
1, 2, 3, #####
2, 1, 1, #####
2, 1, 2, #####
2, 1, 3, #####
2, 2, 1, #####
2, 2, 2, #####
2, 2, 3, #####

这可以通过 SQL 脚本实现吗?

因此,所提供的答案非常适合 Microsoft SQL。有没有办法在 MySQL 中做到这一点?那里似乎没有任何功能。

最佳答案

尝试类似......

select 
DENSE_RANK() OVER ( order by col1) Col1
,DENSE_RANK() OVER (PARTITION BY col1 order by col1,col2) Col2
,DENSE_RANK() OVER (PARTITION BY col1,col2 order by col1,col2,col3) Col3
From TableName

关于mysql - SQL Server : replace distinct values with ints when nested,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37091722/

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