问题标签 [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.
sql - 如何在 R 中模拟 SQL 排名函数?
什么是 R 等价函数,如 Oracle ROW_NUMBER()
、RANK()
或DENSE_RANK()
(“根据行的顺序为行分配整数值”;参见http://www.orafaq.com/node/55)?
我同意每个功能的功能都可以通过特殊方式实现。但我主要关心的是性能。为了内存和速度,最好避免使用连接或索引访问。
sql - SQL Query Select first rank 1 row From Multiple rank/Group
我有以下数据
表格1
以下是评估的顺序 -
我只想为每个 id 返回一行,如果 col1 失败转到 col2,如果失败则转到 col3 条件。从上表结果应该是
我尝试使用密集等级,但没有帮助。我不确定如何使用任何可用的函数或 sql 逻辑来执行此逻辑。
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 的计数
sql - 生成序列号比较TSQL中的相邻行
当相邻行中的组名称发生变化时,我需要帮助生成序列号。我已经尝试过 DENSE RANK 但它没有用。
谢谢
sql - DENSE_RANK 和 IN 的奇怪行为
当我组合查询包含DENSE_RANK()
以生成IN
子句的输入时,我遇到了一些奇怪的结果。
为了证明我已经把它们分开了;
这个查询
返回 1 个结果:
这个查询
还返回 1 个结果:
但是,当我将它们结合在一起时:
我最终得到两个结果:
我根本无法理解如何G002MIMQ
包含在结果中。我使用的是 Oracle 11.2.0.1.0,但是我知道这可能是我误解的通用 SQL 功能。
希望你能对这个奇怪的问题有所了解。
sql-server - 在 SQL Server 中使用 Dense_Rank 对具有排名的列进行排名组合
我有一个要求,我有数据
我想得到这样的输出
我希望在对记录进行排名时考虑DepartmentNumber和UserEmail的组合。我在分区上使用DENSE_RANK()来实现这一点,但不知何故我无法获得我想要的输出。我不确定我哪里出错了。有人可以帮我吗
这是我使用的查询
sql - 使用表上的sql查询
我的员工表有 3 列:
emp_id
,emp_sal
,dept_id
.
我需要为每个部门找到薪水最高的员工。我需要返回emp_id
,emp_sal
并dept_id
为那些员工。
提前致谢
sql - MS Access:在更新中使用 dense_rank
我有一个排名表,包含不同等级的分数:
更新前:
更新后:
我试图进行一个使用UPDATE
as well的查询,DENSE_RANK
但我不知道如何使它工作。
sql - SQL 查询以获取每天的最高销售额
我有一个包含以下数据的表 Sale
我需要的结果如下:
任何帮助将不胜感激。谢谢!
sql - 选择记录进行范围比较
我很喜欢这个。希望我可以用纯 sql 来完成,但此时任何解决方案都可以。
我有ta
和表格,其中包含大约tb
同时发生的事件列表。目标是从on中查找“孤儿”记录。例如:ta
tb
但是假设我必须使用 +-5 秒的阈值。因此,要查找的查询类似于:
(小提琴:http ://sqlfiddle.com/#!4/b58f7c/5 )
规则是:
- 事件映射为 1 到 1
tb
给定事件中最接近的事件ta
将被视为正确的映射。
也就是说,生成的查询应该返回类似
尽管我放在这里的示例查询准确地显示了我遇到的问题。当时间重叠时,很难系统地选择正确的行。
dense_rank()
似乎是选择正确行的答案,但是什么分区/排序将使它们正确?
值得一提的是,我在 Oracle 11gR2 上执行此操作。