我的第一个查询的输出是这样的,我不知道每个会话在联系人ID和服务ID上的排名行.

每个ContactID+ServiceID都需要组通过createdDate Desc获得SessionID以上的排名.

我的数据:

enter image description here

我的疑问

 SELECT ROW_NUMBER() OVER (PARTITION BY ServiceID, ContactID , SESSIONID ORDER BY [Created] DESC) AS rn1,
        RANK() OVER (PARTITION BY ServiceID, ContactID , SESSIONID ORDER BY [Created] DESC) AS rn2,
        DENSE_RANK() OVER (PARTITION BY ServiceID, ContactID , SESSIONID ORDER BY [Created] DESC) AS rn3 
 FROM #TABLE

我的yields 不是我需要的.

我需要这样的:

enter image description here

推荐答案

看起来日期与计算无关,您只需要按会话ID对DENSE_RANK进行排序

DENSE_RANK() OVER (PARTITION BY ServiceID, ContactID ORDER BY SESSIONID DESC) AS Rank

Sql相关问答推荐

如何将varchar传递给tvf并使用该参数来查询结果SQL服务器

PG SQL中按条件聚合值

数据库索引:如何使用名称和类别对项目进行最佳索引?

收到%1、%2或%2邮箱的唯一客户

对表进行多项 Select 以返回最大值和时间

如何从Spark SQL的JSON列中提取动态数量的键值对

Pgsql-返回包含多行数据的行

基于是否具有某些数据的关联表覆盖SELECT语句中的列值

在SQL GROUP BY中的某些行之后执行计算

删除行而不使数据库超载

group by 并根据同表中其他列的某些条件获取 group by 中的某一列值

用替代方案替换 SQL Cursor 以提高性能

如何从postgresql中的项目映射(关联数组)设置值?

如何使用 join 和 where 子句从另一表中仅删除一个表中的值

如何获取每个组中最近的n条记录并将它们聚合成数组

Select 多年的日期范围

MIN MAX 值与条件绑定

如何计算每行出现的次数并显示在另一个表中?

创建一个将层次 struct 级别放入列中的查询

SQL/Postgres:按日期和其他属性对相关性能进行分组