问题标签 [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.
sql - 根据 3 个表中值的出现次数选择第 n 顶行
我有三个表,比如 A、B 和 C。每个表都有不同名称的列,比如 D1、D2 和 D3。在这些列中,我的值介于 1 和 26 之间。如何计算这些值的出现次数并按该计数对它们进行排序?例子:
因此,第三个最常见值的输出如下所示:
同样,第二个最常见值的输出将是:
并输出第一个最常见的值:
mysql - 根据 MySQL 中的多列确定排名
我有一个包含 3 个字段的表,我想根据 user_id 和 game_id 对列进行排名。
这是 SQL 小提琴: http ://sqlfiddle.com/#!9/883e9d/1
我已经有这张桌子了:
预期输出:
到目前为止我的努力:
编辑:(来自 OP评论):排序是基于降序排列game_detail
game_detail 的顺序
mysql - MySQL 错误:我的排名语法有什么问题?
我的 MySQL 版本是 5.6。
我有一个 MySQL 查询,我收到错误,需要帮助来了解我做错了什么。
这是查询:
这是错误消息:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便
在第 3 行的 '(ORDER BY images.timestamp ) rank from images where images.media'附近使用
如果我这样做,我会得到结果:
有什么见解吗?
sql-server - 找出同一个学生与不同组中有多少科目相关联
我有下表,需要提取那些相同值与多个不同 GroupId 相关联的记录。如果相同的值在相同的 GroupId 下重复,则不需要获取它。
我已经尝试过Count(*)
,Having Count(*)>1
但没有给我想要的输出
我需要的输出如下,它告诉相同的值与不同的GroupId
. 在这里,如果相同的值被重复,GroupId
我并不担心。我只需要不止一个GroupId
.
期望的输出-
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)的排名分布以及整个结果中相应的收入分布。
任何帮助都会大有裨益。
sql - Redshift 获取具有最高优先级和时间戳的行
我有一个红移表,记录如下
我想要的是为每本书获取单一记录。在重复的情况下,按 CHECKED 的最低等级的动作进行优先级排序,其余所有动作将具有相同的优先级,然后选择最近的记录。
预期产出
sql - 窗口滞后 sqlzoo.net #7
显示的查询包含一个 JOIN t the world 表,因此我们可以访问每个国家的总人口并计算感染率(以每 100,000 例为单位)。
显示每个国家的感染率排名。仅包括人口至少为 1000 万的国家。
答。
上面的代码是我的解决方案,但我仍然得到错误的答案。有谁知道正确的解决方案?
sql - 基于产品持有量的排名
我有一个包含客户 ID 和产品 ID 组合的表。我想确定产量最高的产品持有组合。即产量最大的产品组合和产品子组合或单个产品是什么。
例如,如果我有 3 种产品的组合,我想根据这些产品的其他组合或单独出现对其进行排名。尝试这样做,以便我可以识别出产量最高的组合。
请分享您对此的看法。数据库 - SQL 服务器。
在上面的例子中,如果我研究 prod1 和 prod2,我会找到 4 个客户。我会打到一个有 prod1-prod2 的客户和 3 个只有 prod1 的客户。
如果我研究 prod1、prod2 和 prod3,那么我会打到所有客户。
尝试使用 string_split 和 XML PATH 的组合。它有助于整合单一产品子控股,但不能整合多产品子控股。
我认为这是一种错误的方法,所以最初没有附加。
sql-server - 不使用索引的多个等级(具有不同的分区,但排序顺序相同)
与此问题类似,但给出的建议似乎不适用于我的情况
我有一个看起来像这样的#temp 表:
现在它包含大约。10M 行,尽管我需要它来处理比这更多的行(我已经限制了它,以便检查查询计划不会花一整天的时间!)
该表具有以下索引和统计信息:
(我不确定为什么需要统计数据,这似乎对计划没有影响,但是当它们丢失时它会抱怨)
最后,我尝试使用不同的分区但相同的排序顺序在此数据上创建 3 个不同的排名
这需要将近 2 分钟才能运行。
如您所见,此计划中有多种昂贵的种类。根据链接的问题,我创建的索引应该可以在这里使用,但它们没有被使用。
如果我改为创建 3 个单独的查询,每个等级 1 个,在这种情况下,索引将按预期使用。我确实尝试利用它并加入 3 个查询结果以产生相同的输出,但这实际上总体上花费了稍微长一点的时间
我还尝试修改索引以包含分区列,如下所示:
通过从表扫描更改为索引扫描(B),这成功地删除了第一个(最右边的)排序。但其他种类仍然存在
为什么需要多个排名时不使用索引?我怎样才能消除昂贵的种类?
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 |
这是我的查询: