问题标签 [ranking-functions]

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 回答
9522 浏览

sql - 如何使用 WHERE 子句对分区进行 RANK()

我需要在一个表中做 2 个等级,一个用于所有行,一个用于总产量大于零的行。有没有办法用排名函数做到这一点?

0 投票
2 回答
601 浏览

sql - 如何按三分之二或四分之二对数据进行分类 - Oracle SQL

我正在使用如下所示的数据集:

理想情况下,我试图将这些数据分组到箱中(进入前三分之一百分位数、中间三分之一百分位数或底部三分之一百分位数)。我们最终可能会搬到宿舍。

我正在尝试PERCENT_RANK在 OracleSQL 中使用该功能,但无法弄清楚如何正确使用它。

我正在尝试以下内容:

但得到错误:

ORA-00979: 不是 GROUP BY 表达式

理想情况下,我的数据集如下所示:

我已设置此SQLFIDDLE以使用示例数据进行演示。

我怎样才能用它PERCENT_RANK来实现我的目标?

0 投票
2 回答
584 浏览

if-statement - 如何根据加权因子的多个标准对行进行排名?

我正在设置一个允许您输入值的 excel 文件,然后它将为每个值提供 1 到 5 的排名,然后根据一组加权值比较所有值。

这是我正在努力解决的一个业务问题,因为我需要设计一个排名系统,该系统需要考虑所有因素来决定我想做的哪个选项是最好的。

但是,某些因素需要对 IF 函数进行不同的排列。因为对于某些列,值越高=排名越低,反之亦然。

我已经设定了每个因素排名 1 到 5 的标准。

示例:潜在客户数量越多,排名越高。每次转化费用越高,排名越低。等等。下面是我制作的代码示例:每列都不同(我将提供文件链接)

所以现在我们有一个新表,其中包括所有排名 1 到 5。但是,我没有(或必须)以某种方式将加权因子放入方程中以考虑权重(因为这真的会影响最终的排名结果) .

这是我最挣扎的部分,我找不到以某种方式考虑加权值以给出总体值的函数。

提前感谢任何能够帮助我的人。

这就是现在的样子

0 投票
0 回答
15 浏览

join - 如何跳过sql中定义的组合?

--A=100,B=50,C=200

我必须计算 MinValue 的总和,它应该只包括 (AB,AC,BC) 作为 AB=BA 的任何最小值,所以只需要取一个。

所以结果我想从 9 行中得到 3 行。

任何帮助将不胜感激。

早些时候我尝试了下面的事情,但没有奏效。

(我需要写什么条件以避免不希望的组合。)

这是一个链接

0 投票
1 回答
82 浏览

google-sheets - 如何对同一单元格内的单元格值进行排名

我正在尝试对一组数字(在一列中)进行排名,但我希望该排名出现在同一单元格中的数字旁边。

例如,如果数字是“21”并且排名“3rd”——我希望单元格显示为“21 (3)”。如果我可以将 (3) 格式化为更小/上标,则可以获得奖励积分。


我尝试了什么: 虽然我正在工作的单元格中已经有一个方程式,但我会简化它。假设A23 = 15A24 = 6。我尝试了以下等式,但它一直给我一个错误。我正在工作的单元格是 H103。排名范围为 H103:H114。

即使我删除括号或稍微修改一下,我仍然会遇到错误。只是想找到任何方法,我可以有 2 个公式,在同一个单元格中有不同的结果;其中一个显示该特定单元格的等级。

这是我的工作表的副本——这是一个重复的 Google 工作表,所以如果你愿意,可以随意在里面玩。我专注于排名H103:H114。

0 投票
3 回答
1816 浏览

sql - 向密集秩函数添加条件子句(Where)

我想创建一个 Rank 函数来计算一个人访问财产的次​​数,BY DATE但条件是不包括访问类别。'Calls'

这样做会对我不想要的整个通讯表进行排名。

桌子

---- ActivityID ----------Property --------DATE ------CommunicationType ----------------Rank

理想情况下,我希望表格看起来像上面一样,以忽略通信类型列的调用元素并仅计算字段类别。我怎么能这样做?

0 投票
1 回答
274 浏览

sql-server - UPDATE 使用 Rank(), Row_Number 不包括重复值

我有一个类似于下面的数据集。

在此处输入图像描述

我需要根据 updated_CustomerId 列中提供的值更新基本查找表。基表与数据集相同,但没有 updated_CustomerId 列。

这里的挑战是基表具有基于以下三列组合的 唯一约束: Current_CustomerID
Order_ID OrderCategory

期望的输出:

在此处输入图像描述

更新后 Old_customerIds (17360410 - Pk 8, 21044488 - Pk = 9) 之一可以重新分配给 Update_CustomerID PrimaryKey 2 不会更新,因为这会导致违反唯一约束,但随后它将与其中一个一起删除上面的 PrimaryKeys 为 8 或 9,取决于更新了哪一个(重新分配给新的 id)

在基表上更新所有内容后,我从基表中删除所有未将 Current_CustomerID 重新分配给 updated_CustomerId 的记录(如果不同)

消息 2601,级别 14,状态 1,第 82 行无法在具有唯一索引“IDX_LookUp”的对象“dbo.#BaseTable”中插入重复的键行。重复键值为 (25693110, 4451784, Kitchen)。该语句已终止。

0 投票
1 回答
57 浏览

mysql - 输出来自同一个 SQL 表的不同列的不同行

我正在尝试计算过去 4 个月的运行平均值。所以我需要得到每个月的第四个值

[预期输出]

我试图做的

  • 我试图排除诸如 row_number 之类的零(按月 desc 排序) - 这没有用

- 我尝试使用无效的 NULLS LAST 函数,因为我需要根据月份而不是每个月订购

请帮忙

0 投票
1 回答
159 浏览

sql-server - 根据具有标准的组对连续月份求和

我在缩小连续几个月发生的热门地区的销售额时遇到了困难。我知道我需要使用某种形式的窗口函数Row_Numberor Dense_Rank,但我无法获得最终输出

这是我的源数据:

这是预期的输出:

目标是在一个月内连续出现顶级区域销售的实例。

到目前为止,我已经尝试了几种不同的组合,这是最接近的。

任何帮助将不胜感激

0 投票
3 回答
119 浏览

sql - 以正确的顺序获取行号结果?

我有一个查询来获取基于 yearleftpost 的 JobRanking 以获得最新的工作,然后是以前的工作。

它给了我结果:

现在,我有一个 IscurrentJob(布尔值)0 或 1,我没有得到 JobRanking 的正确顺序。