根据另一列的顺序制作一列
Making a column based on the order of another column
我有一个叫 cars 的 table 有一堆柱子。
我想创建一个名为“Make_ID”的列,该列将根据字母顺序或“Make”列递增。
我的目标是给每个 Make 字符串一个唯一的整数,例如无论我有一个带有“Ford”品牌的记录,Make_ID 总是,例如,数字 3 或者如果我有一个“马自达”品牌,Make_ID 拥有马自达品牌的唱片中的编号将为 15。
有办法吗?
如果您有数据并且只想将其放入结果集中,则使用 dense_rank()
:
select c.*, dense_rank() over (order by make) as make_id
from cars c
我有一个叫 cars 的 table 有一堆柱子。
我想创建一个名为“Make_ID”的列,该列将根据字母顺序或“Make”列递增。
我的目标是给每个 Make 字符串一个唯一的整数,例如无论我有一个带有“Ford”品牌的记录,Make_ID 总是,例如,数字 3 或者如果我有一个“马自达”品牌,Make_ID 拥有马自达品牌的唱片中的编号将为 15。
有办法吗?
如果您有数据并且只想将其放入结果集中,则使用 dense_rank()
:
select c.*, dense_rank() over (order by make) as make_id
from cars c