问题标签 [sql-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 投票
3 回答
41 浏览

sql - 根据 3 个表中值的出现次数选择第 n 顶行

我有三个表,比如 A、B 和 C。每个表都有不同名称的列,比如 D1、D2 和 D3。在这些列中,我的值介于 1 和 26 之间。如何计算这些值的出现次数并按该计数对它们进行排序?例子:

因此,第三个最常见值的输出如下所示:

同样,第二个最常见值的输出将是:

并输出第一个最常见的值:

0 投票
4 回答
3557 浏览

mysql - 根据 MySQL 中的多列确定排名

我有一个包含 3 个字段的表,我想根据 user_id 和 game_id 对列进行排名。

这是 SQL 小提琴: http ://sqlfiddle.com/#!9/883e9d/1

我已经有这张桌子了:

预期输出:

到目前为止我的努力:

编辑:(来自 OP评论):排序是基于降序排列game_detail

game_detail 的顺序

0 投票
1 回答
2322 浏览

mysql - MySQL 错误:我的排名语法有什么问题?

我的 MySQL 版本是 5.6。
我有一个 MySQL 查询,我收到错误,需要帮助来了解我做错了什么。

这是查询:

这是错误消息:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便
在第 3 行的 '(ORDER BY images.timestamp ) rank from images where images.media'附近使用

如果我这样做,我会得到结果:

有什么见解吗?

0 投票
2 回答
47 浏览

sql-server - 找出同一个学生与不同组中有多少科目相关联

我有下表,需要提取那些相同值与多个不同 GroupId 相关联的记录。如果相同的值在相同的 GroupId 下重复,则不需要获取它。

我已经尝试过Count(*)Having Count(*)>1但没有给我想要的输出

我需要的输出如下,它告诉相同的值与不同的GroupId. 在这里,如果相同的值被重复,GroupId我并不担心。我只需要不止一个GroupId.

期望的输出-

0 投票
1 回答
289 浏览

c# - SQL Rank over partition to C# Linq

我刚开始用 C# 编写代码,需要一些指导来实现 C# 中的 SQL Rank over partition (LINQ)

我从数据库中检索了以下数据,并将 SQL 结果存储在 c# 中的数据表中。'Score' 列必须乘以代码中的系数,因此我无法执行 SQL Rank。我需要按分数的降序对分区 [ID1, ID2] 中的 SKU 进行排名。SQL 等效项是:

选择ID1,ID2,SKU,Rank() over (partition by ID1,ID2 order by score desc)作为[Rank]

结果集

结果集

获得排名后,我最终需要获得特定 SKU(例如 s1)的排名分布以及整个结果中相应的收入分布。

任何帮助都会大有裨益。

0 投票
1 回答
49 浏览

sql - Redshift 获取具有最高优先级和时间戳的行

我有一个红移表,记录如下

我想要的是为每本书获取单一记录。在重复的情况下,按 CHECKED 的最低等级的动作进行优先级排序,其余所有动作将具有相同的优先级,然后选择最近的记录。

预期产出

0 投票
1 回答
655 浏览

sql - 窗口滞后 sqlzoo.net #7

显示的查询包含一个 JOIN t the world 表,因此我们可以访问每个国家的总人口并计算感染率(以每 100,000 例为单位)。

显示每个国家的感染率排名。仅包括人口至少为 1000 万的国家。

答。

上面的代码是我的解决方案,但我仍然得到错误的答案。有谁知道正确的解决方案?

0 投票
2 回答
53 浏览

sql - 基于产品持有量的排名

我有一个包含客户 ID 和产品 ID 组合的表。我想确定产量最高的产品持有组合。即产量最大的产品组合和产品子组合或单个产品是什么。

例如,如果我有 3 种产品的组合,我想根据这些产品的其他组合或单独出现对其进行排名。尝试这样做,以便我可以识别出产量最高的组合。

请分享您对此的看法。数据库 - SQL 服务器。

在上面的例子中,如果我研究 prod1 和 prod2,我会找到 4 个客户。我会打到一个有 prod1-prod2 的客户和 3 个只有 prod1 的客户。

如果我研究 prod1、prod2 和 prod3,那么我会打到所有客户。

尝试使用 string_split 和 XML PATH 的组合。它有助于整合单一产品子控股,但不能整合多产品子控股。

我认为这是一种错误的方法,所以最初没有附加。

0 投票
1 回答
18 浏览

sql-server - 不使用索引的多个等级(具有不同的分区,但排序顺序相同)

此问题类似,但给出的建议似乎不适用于我的情况

我有一个看起来像这样的#temp 表:

现在它包含大约。10M 行,尽管我需要它来处理比这更多的行(我已经限制了它,以便检查查询计划不会花一整天的时间!)

该表具有以下索引和统计信息:

(我不确定为什么需要统计数据,这似乎对计划没有影响,但是当它们丢失时它会抱怨)

最后,我尝试使用不同的分区但相同的排序顺序在此数据上创建 3 个不同的排名

这会产生这个实际的查询计划 实际查询计划

这需要将近 2 分钟才能运行。

如您所见,此计划中有多种昂贵的种类。根据链接的问题,我创建的索引应该可以在这里使用,但它们没有被使用。

如果我改为创建 3 个单独的查询,每个等级 1 个,在这种情况下,索引将按预期使用。我确实尝试利用它并加入 3 个查询结果以产生相同的输出,但这实际上总体上花费了稍微长一点的时间

我还尝试修改索引以包含分区列,如下所示:

通过从表扫描更改为索引扫描(B),这成功地删除了第一个(最右边的)排序。但其他种类仍然存在

为什么需要多个排名时不使用索引?我怎样才能消除昂贵的种类?

0 投票
2 回答
57 浏览

sql - 在 UNION 之后创建排名列

我正在尝试SalesRank根据 column 中的金额创建一列SalesAmount

我正在尝试做与此类似的事情:RANK() OVER(Order BY SalesAmount desc) as StateRank,但我不确定在将两个表连接在一起后如何执行此操作?如何在两个表合并后创建另一列?为了做到这一点,我需要将我的联合选择插入到#temptable?

这是我的表的示例:

状态标识 报告标题 报告 ID 销售额
1 加利福尼亚的在线销售 21 21512
12 纽约在线销售 37 13201
14 密歇根州的在线销售 91 9212
23 内华达州的在线销售 14 12931
8 宾夕法尼亚州的在线销售 14 23413
13 俄勒冈州的在线销售 14 9651

我期待有这样的回报:

状态标识 报告标题 报告 ID 销售额 销售排名
1 加利福尼亚的在线销售 21 21512 2
12 纽约在线销售 37 13201 3
14 密歇根州的在线销售 91 9212 6
23 内华达州的在线销售 14 12931 4
8 宾夕法尼亚州的在线销售 14 23413 1
13 俄勒冈州的在线销售 14 9651 5

这是我的查询: