首页 > 解决方案 > 如何为具有关键数据的另一列找到不同的值?

问题描述

我目前有一列具有唯一的帐号我想为另一列中的每个帐户唯一帐号创建唯一值,以便我可以使用这些来获取不同值的计数。

例如 :

Account number  unique value 
12345.                    67
56738.                   87
28373.                   58 
28373.                   58 

因此,当我对 unique value 列进行区分时,我会得到与 account number 的不同计数相同的不同计数。
所以这里的不同计数将是 3

标签: sqlnetezza

解决方案


dense_rank()应该做你想做的事:

select t.*, dense_rank() over (order by account_number) as unique_id
from t;

请注意,随着新帐户的添加或删除,这可能会随着时间而改变。如果这是一个问题,我的建议是创建一个account_numbers具有整数主键的单独表。使用主键作为唯一编号。


推荐阅读