当前位置: 首页 > 知识库问答 >
问题:

使用Dense Rank为所有分区列获取相同的秩号

秦经义
2023-03-14

下面的例子是为了我的学习目的。

select dense_rank() over(partition by job order by salary desc) as rank, ename,job,salary 
from emp;

输出:

rank    ename   job     salary
1       SCOTT   ANALYST 3000
1       FORD    ANALYST 3000
1       MILLER  CLERK   1300
2       ADAMS   CLERK   1100
3       JAMES   CLERK   950
4       SMITH   CLERK   800
1       JONES   MANAGER 2975
2       BLAKE   MANAGER 2850
3       CLARK   MANAGER 2450
1       KING    PRESIDENT       5000
1       ALLEN   SALESMAN        1600
2       TURNER  SALESMAN        1500
3       MARTIN  SALESMAN        1250
3       WARD    SALESMAN        1250

我期待以下结果。你能不能请人帮我用密集排名获取蜂巢查询

预期结果:


rank    ename   job     salary
1       SCOTT   ANALYST 3000
1       FORD    ANALYST 3000
2       MILLER  CLERK   1300
2       ADAMS   CLERK   1100
2       JAMES   CLERK   950
2       SMITH   CLERK   800
3       JONES   MANAGER 2975
3       BLAKE   MANAGER 2850
3       CLARK   MANAGER 2450
4       KING    PRESIDENT       5000
5       ALLEN   SALESMAN        1600
5       TURNER  SALESMAN        1500
5       MARTIN  SALESMAN        1250
5       WARD    SALESMAN        1250

共有1个答案

邢浩邈
2023-03-14

你的职位等级为每一份工作的新薪水创造了一个新的数字。要获得预期的结果,必须删除分区并按作业排序

dense_rank() over(order by job)

现在每一份新工作都会有一个新号码。

 类似资料:
  • 如何使用Amazon DynamoDB模块获取仅匹配分区键(表有排序键)的所有项目。我正在使用GetItemRequest查询没有排序键。 当我仅使用分区键和GetItemRequest进行查询时,我会遇到以下错误。 <代码>原因:软件。亚马逊。awssdk。服务。发电机B。模型DynamoDbException:提供的关键字元素与架构不匹配(服务:DynamoDb,状态代码:400,请求ID:6

  • 问题内容: 我有一个包含人姓,名,部门的SQLite数据库,我需要进行查询以向我显示具有相同名字和姓氏的任何人。我发现以下语句应该可以满足单个字段的要求,但是当我尝试使用它来提取所有具有相同姓氏的记录时,它似乎对我不起作用。我怎样才能做到这一点? 问题答案: 尝试: GROUP BY合并名称值相同的行。 HAVING删除不符合条件的组。 上面的查询将列出名字和姓氏,以及实际上有重复的所有名字/姓氏

  • 我有一个数据帧,我用它来插入到现有的分区配置单元表中,使用spark sql(使用动态分区)。一旦数据帧被写入,我想知道我的数据帧刚刚在蜂巢中创建的分区是什么。 我可以在数据帧中查询不同的分区,但这需要很长时间,因为它必须启动数据帧的整个进程。 我可以在写入配置单元之前持久化数据帧,这样,写操作和distinct partition_column操作就发生在缓存的数据帧之上。但我的数据帧非常大,不

  • 问题内容: 我有以下2个表t1,t2 我在跑步 结果: 在运行脚本时: 结果: select 应该返回所有列,所以,为什么当我使用select 时却没有得到2行? 注意:我正在使用Mysql 问题答案: 正如文档所说: 自然连接和使用USING的连接(包括外部连接变体)将根据SQL:2003标准进行处理: NATURAL连接的冗余列不会出现。考虑以下这组语句: 列j在USING子句中命名,并且在输

  • 问题内容: 我一直在到处寻找它,但仍然找不到解决方案:如何从mySQL列中获取所有值并将它们存储在数组中? 例如:表名称:客户列名称:ID,名称行数:5 我想获得此表中所有5个名称的数组。我该怎么做?我正在使用PHP,而我只是想: 然后使用 PHP函数将这些值存储在数组中。 问题答案: 请注意,此答案已过时! 从PHP7开始,mysql扩展不再可用。如果要在PHP7中使用旧的mysql函数,则必须