我应该如何根据项目类型分配序列号(等级(?))?

Posted

技术标签:

【中文标题】我应该如何根据项目类型分配序列号(等级(?))?【英文标题】:How should I assign a sequence number (rank (?)) based on item type? 【发布时间】:2021-02-26 04:17:50 【问题描述】:

我正在尝试分析每个项目使用的项目序列及其平均持续时间。 为了给你一个例子和我的预期输出,请参考下表。

正如您在表格中看到的,我想在金额列旁边分配一个项目序列号(红色文本)。 对于这个任务,我只关心项目的顺序。 我对使用lead() 函数或row number() over (partition by ...) 代码有一个模糊的理解。

但是,到目前为止我尝试过的所有代码都没有提供预期的结果。

请帮忙, 提前谢谢你。

【问题讨论】:

item 的序列”是通过在item 列上排序定义的吗? 非常感谢。这是我第一次使用堆栈溢出。是的,项目的顺序是通过对项目进行排序来定义的。 【参考方案1】:

据我所知,您可以通过 dense_rank() 实现此目的

select id, 
       start_date, 
       end_date, 
       item, 
       amount, 
       dense_rank() over (order by item) as item_sequence
from the_table
order by item;

【讨论】:

非常感谢!!您的查询对我的任务有效!

以上是关于我应该如何根据项目类型分配序列号(等级(?))?的主要内容,如果未能解决你的问题,请参考以下文章

python列表元组

模板已知二叉树两种序列求另外一种序列--非建树

刷题日记Day3 | 二叉树序列化

非递归中序遍历二叉树(leetcode 94)

非递归中序遍历二叉树(leetcode 94)

由先序遍历序列和中序遍历序列确定二叉树