我正在尝试使用2个不同的列来生成唯一ID。
条件是只要第1列或第2列至少包含一个相同的结果,我会将其分类为相同的唯一ID(我要生成的唯一ID)。
这将是我拥有的原始数据: https://imgur.com/qg1LwPC
给出示例用例: 我有3个帐户(第1列)和2个设备(第2列)。 如果我在设备A中登录帐户1,然后在设备A中登录帐户2
我的唯一配置文件应包含1,2,A作为唯一ID 1(自动生成/密集排名)。
如果我将帐户2登录到设备B,它现在应该使用(1,2,A,B)更新我的唯一ID 1
在我将帐户2登录到设备C的情况下,我的唯一ID 1应该由(1,2,A,B,C)组成
基本上,我想要创建的唯一ID是,只要第1列或第2列的值与我现有列表中的值相同,它将被标记为相同的唯一ID。
如果我仅索引第1列或仅索引第2列,而不是同时索引第2列,则Dense_rank将允许我创建唯一的ID。
使用DENSE_RANK() OVER(ORDER BY column1, column2)
将为我提供第1列和第2列ID,我需要的是第1列或第2列。
我尝试使用Generate an ID based on Column Values,但这不能满足我的要求。
SELECT column1, column2, DENSE_RANK() OVER(ORDER BY column1, column2) AS result
FROM test_table
给我带来了结果,但没有达到我的期望。 https://imgur.com/mj2vbbf
是否还有其他方法可以在SQL上完成而无需进入PL?
我没有使用常规的SQL服务器(AliCloud https://www.alibabacloud.com/help/product/27797.htm开发的MaxCompute),因此我的语法可用性可能非常有限。我需要的是更多构建它的逻辑。
最终目标是构建一个映射ID,该ID将显示数组中的所有第1列和第2列,并将该ID表示为一个人。