问题标签 [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 投票
5 回答
16674 浏览

sql - 如何在 R 中模拟 SQL 排名函数?

什么是 R 等价函数,如 Oracle ROW_NUMBER()RANK()DENSE_RANK()(“根据行的顺序为行分配整数值”;参见http://www.orafaq.com/node/55)?

我同意每个功能的功能都可以通过特殊方式实现。但我主要关心的是性能。为了内存和速度,最好避免使用连接或索引访问。

0 投票
2 回答
41757 浏览

sql - SQL Query Select first rank 1 row From Multiple rank/Group

我有以下数据

表格1

以下是评估的顺序 -

我只想为每个 id 返回一行,如果 col1 失败转到 col2,如果失败则转到 col3 条件。从上表结果应该是

我尝试使用密集等级,但没有帮助。我不确定如何使用任何可用的函数或 sql 逻辑来执行此逻辑。

0 投票
2 回答
5981 浏览

sql-server-2008 - SQL Server:如何根据另一列的顺序在一个列上使用dense_rank

我在 SQL Server 2008 中有一个表,我需要为一列交替值,比如 column alt。该列中的重复项始终需要相同的值,因此我正在考虑通过 % 2使用dense_rank该列的函数。alt

但是该表中也有邮政编码,我需要在分配交替值之前对数据进行排序。

所以基本上在基于列的交替值alt已经分配之后,当数据然后按邮政编码排序时,交替值确实需要交替(当然除了“alt”表中的重复项)。

目前,我得到一个结果,其中alt值确实得到了交替值,但是当按邮政编码排序时,我通过 dense_rank 函数获得了例如 0,0,0 的序列,这是问题所在。

我尝试使用临时表,但没有得到预期的结果

然后在该表上执行desk_rank,因为不能保证临时表的顺序。

任何想法都非常感谢!

干杯,斯蒂沃

编辑:

示例代码:

现在的问题是,当按邮政编码排序时,以下列都包含与交替值相同的值 (0)。当按邮政编码排序时,结果实际上应该有交替值,但这些交替值应该基于列 BaseForAlternatingValue。

预期结果应该是:

最后两个结果行的最后一个 AlternatingValue 不同:Alternating Value 需要在不同的邮政编码之间交替。之前倒数第三行是 0,倒数第二行也是 0。

至于下面 Mikael 的问题,“如果你有 add row ('cccccccccc','12345') 怎么办。那么预期的输出是什么?”

预期的输出将是:

总而言之:我需要 BaseForAlternatingValue 列的交替值,但是在按邮政编码排序时,这种交替应该是可见的。(并且 BaseForAlternatingValue 中的重复项需要相同的“交替”值)

----------------

最后我找到了一个更简单且相对不错的解决方案:1)使用带有插入和排序的临时表并使用id值(id值将反映order by子句)2)找出给定BaseForAlternatingValue的最小id 3) 找出 id 小于的不同 BaseForAlternatingValues 的计数

0 投票
3 回答
1904 浏览

sql - 生成序列号比较TSQL中的相邻行

当相邻行中的组名称发生变化时,我需要帮助生成序列号。我已经尝试过 DENSE RANK 但它没有用。

谢谢

0 投票
1 回答
144 浏览

sql - DENSE_RANK 和 IN 的奇怪行为

当我组合查询包含DENSE_RANK()以生成IN子句的输入时,我遇到了一些奇怪的结果。

为了证明我已经把它们分开了;

这个查询

返回 1 个结果:

这个查询

还返回 1 个结果:

但是,当我将它们结合在一起时:

我最终得到两个结果:

我根本无法理解如何G002MIMQ包含在结果中。我使用的是 Oracle 11.2.0.1.0,但是我知道这可能是我误解的通用 SQL 功能。

希望你能对这个奇怪的问题有所了解。

0 投票
1 回答
12262 浏览

sql-server - 在 SQL Server 中使用 Dense_Rank 对具有排名的列进行排名组合

我有一个要求,我有数据

我想得到这样的输出

我希望在对记录进行排名时考虑DepartmentNumberUserEmail的组合。我在分区上使用DENSE_RANK()来实现这一点,但不知何故我无法获得我想要的输出。我不确定我哪里出错了。有人可以帮我吗

这是我使用的查询

0 投票
4 回答
141 浏览

sql - 使用表上的sql查询

我的员工表有 3 列:

  • emp_id,
  • emp_sal,
  • dept_id.

我需要为每个部门找到薪水最高的员工。我需要返回emp_idemp_saldept_id为那些员工。

提前致谢

0 投票
1 回答
687 浏览

sql - MS Access:在更新中使用 dense_rank

我有一个排名表,包含不同等级的分数:

更新前:

更新后:

我试图进行一个使用UPDATEas well的查询,DENSE_RANK但我不知道如何使它工作。

0 投票
1 回答
3500 浏览

sql - SQL 查询以获取每天的最高销售额

我有一个包含以下数据的表 Sale

我需要的结果如下:

任何帮助将不胜感激。谢谢!

0 投票
1 回答
359 浏览

sql - 选择记录进行范围比较

我很喜欢这个。希望我可以用纯 sql 来完成,但此时任何解决方案都可以。

我有ta和表格,其中包含大约tb同时发生的事件列表。目标是从on中查找“孤儿”记录。例如:tatb

但是假设我必须使用 +-5 秒的阈值。因此,要查找的查询类似于:

(小提琴:http ://sqlfiddle.com/#!4/b58f7c/5 )

规则是:

  • 事件映射为 1 到 1
  • tb给定事件中最接近的事件ta将被视为正确的映射。

也就是说,生成的查询应该返回类似

尽管我放在这里的示例查询准确地显示了我遇到的问题。当时间重叠时,很难系统地选择正确的行。

dense_rank()似乎是选择正确行的答案,但是什么分区/排序将使它们正确?

值得一提的是,我在 Oracle 11gR2 上执行此操作。