问题标签 [dense-rank]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
449 浏览

sql - 连续日期排名

我需要获得连续未付款的金额:

正如你从这里看到的,我从 id 2 中得到了正确的未付款数:他的第一次未付款是在 3 月,第二次是在 4 月。ID 3 也可以,因为我稍后会将他排除在外,但对于 ID 1,它表示第二次未付款是在 5 月,而我想成为第一次,因为他在 3 月未付款,但在 4 月再次付款,所以它应该从那里开始排名。一旦他支付了最后一笔款项,流程就会重新开始。

这个想法是在没有复杂查询的情况下保持简单。我只需要做与密集排名相同的事情,但前提是日期是连续的

我希望这个例子足够清楚。

编辑:这是我从当前查询中得到的:

我想得到的是:

这样,如果我想获得最大(排名)来检查用户当前有多少未付款,我会得到该 ID 有 1 次未付款,ID 2 有两个连续未付款,ID 3 有 0 次未付款。这是因为在第四次连续未付款时,我必须将用户视为流失。

编辑:29/06/2013

在另一个论坛有人给了我一个完美的解决方案: https ://forums.oracle.com/thread/2555552

0 投票
2 回答
1630 浏览

sql - 连接来自 SQL DENSE_Rank 的字符串结果

我有一种情况,我需要将 DENSE_RANK 函数的 SQL 结果“连接”成一个字符串,我不知道有另一个 SQL 函数可以做到这一点。

问题是我最终从 DENSE_RANK 函数中获得了相同等级的多行,这是可以预料的,例如:


我想要实现的是如下所示的结果,所以因为 ID 1 有 2 个信息具有相同的等级,所以我想将它们“连接”成一个字符串(逗号分隔):


我目前有以下代码,它为我提供了 DENSE_RANK 的结果,但我一直在试图弄清楚如何在我有一个“连接”字符串的地方获得我的最终结果集,我尝试了一些不同的技术并且有通过stackoverflow好好看看,但我找不到一种让它工作的方法。

0 投票
1 回答
374 浏览

sql - SQL dense_rank 函数

这是一个 sql dense_rank 函数问题。我一直在研究互联网试图找到答案。我已经尝试了几个版本,但没有任何工作。这是我遇到的问题:有人在 7/13 更改了程序。从 7 月 14 日起,该计划现在消除了薪水领域。我必须找到 = 0 的最新记录,然后找到 > 0 的第二个最新记录。这是我尝试过的代码之一:

这些是结果。它们看起来不错,只是我只需要底部的 2 行。有没有办法只接收最后两行?YMDEND 并不总是 99991231,所以我不能使用该字段。

0 投票
1 回答
2307 浏览

sql - DB2 SQL - 按日期时间排序的两个字段的密集排名分组

我知道这是其他人过去必须解决的问题,但在我有限的知识范围内,还没有克服困难。我有按日期时间排序的数据,需要按两个字段(状态和队列)的组合进行分组。在给定时间范围内状态和队列相同的情况下,它们应被视为同一组的一部分,因此具有相同的 id。

为了实现这一点,我尝试实现 DENSE_RANK(),并且出于所有意图和目的,它已经成功 - 除了组的排序。下面是一个例子:

结果是这样的:

如您所知,“GRP”出现故障(我也知道使用 date(EVENT_DATE) 不是解决方案)。

0 投票
1 回答
3390 浏览

sql - T-SQL“dense_rank”,每个等级的最大行数

如果我做一个

对于列 colname 中具有相同值的所有行,我得到相同的排名。

但是,我想将具有相同等级的行数限制为@maxrows,以便当@maxrows 行在colname 中具有相同的值时,即使colname 的值仍然相同,也会为下一行分配一个新的等级。

我怎样才能做到这一点?

0 投票
3 回答
861 浏览

sql - 如何在 SQL Server 中将值从密集排名函数中提取出来

在下面的查询中,我想将 Dense Rank 函数转换为 nvarchar(255) 但它给出了语法错误。我有以下问题-

  1. 是否可以强制转换从密集排名函数返回的值?
  2. 如果是,语法是什么?

0 投票
3 回答
61 浏览

sql - sql改变列顺序

如何使用sql server 2005将列中的旧序列更改为新序列

0 投票
1 回答
41 浏览

sql - SQL 查询链接表,从一个表中返回最早的历史以及相关的结果

我有两个需要查询的表。我们称它们为表 A 和表 A_HISTORIES。表 A 中的每一行都链接到 A_HISTORIES 中的多行。我想要做的是能够将表 A 中的每一行与表 A_HISTORIES 中最早的历史联系起来,例如:-

但是,这只会返回 A/A_HISTORIES 中具有最早 CREATED_DATE 的行。任何人都可以帮我在 A 中的每一行执行此操作吗?谢谢

0 投票
3 回答
110 浏览

sql - 无需排序即可获取组 ID 的有效方法

想象一下,我有一个像这样的非规范化表:

我需要构建一个查询来返回每个人的姓名,以及他们所在国家/地区的唯一 ID。ID 不一定必须是连续的;更重要的是,它们不必任何顺序排列。实现这一目标的最有效方法是什么?

最简单的解决方案似乎是DENSE_RANK

但是,这会在我的CountryName专栏中引起排序,这是一种浪费的性能猪。我想出了这个替代方案,它使用ROW_NUMBER众所周知的技巧来抑制其排序:

我是否正确假设第二个查询通常会更好地执行(不仅仅是在我设计的数据集上)?是否有任何可能产生影响的因素(例如 上的索引CountryName)?有没有更优雅的表达方式?

0 投票
3 回答
119 浏览

sql - mssql的内部选择顺序

我需要在这个内部选择中按 UserId 进行排序(所以在考虑最后一个 WHERE 子句之前)但是因为我收到错误

ORDER BY 子句在视图、内联函数中无效...

我不能那样做。有没有其他方法可以像现在一样按 UserId 和 DENSE_RANK() 按 JobId 排序?

大多数 UserId 值是 NULL 并且当按 JobId 进行密集排序时,我需要对这些 JobId 进行排序,以便首先是 UserId != NULL