根据另一列的顺序制作一列

Posted

技术标签:

【中文标题】根据另一列的顺序制作一列【英文标题】:Making a column based on the order of another column 【发布时间】:2020-11-17 19:35:57 【问题描述】:

我有一张名为 cars 的表,上面有一堆列。

我想创建一个名为“Make_ID”的列,该列将根据字母顺序或“Make”列递增。

我的目标是给每个 Make String 一个唯一的整数,例如,只要我有一个 Make 为“Ford”的记录,Make_ID 将始终是,例如,数字 3 或者如果我有一个 Make of “ Mazda”,Make_ID 编号将是 15 永远记录具有 Mazda 的品牌。

有办法吗?

【问题讨论】:

您需要一个名为 makes 的单独表,并具有自动递增的主键。 【参考方案1】:

如果您有数据并且只想将其放在结果集中,请使用dense_rank()

select c.*, dense_rank() over (order by make) as make_id
from cars c

【讨论】:

这是一个真正的救星谢谢

以上是关于根据另一列的顺序制作一列的主要内容,如果未能解决你的问题,请参考以下文章

PySpark:根据另一列的顺序收集数据框列上的集合

如何按顺序提取EXCEL里其中一列数据(符合指定条件的)依次显示在另一列里

excel:根据另一列中的顺序对十进制值列表进行排序

PySpark - 根据另一列值的降序添加递增的整数排名值

如何根据另一列的聚合得到一列的对应值?

根据不同数据类型的另一列设置一列的默认值