问题标签 [row-number]

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 投票
2 回答
17006 浏览

sql - 使用 Row_Number() 选择行的子集

我正在尝试选择 50 到 60 之间的行子集。问题是“RowNo”是无效的列名。

谢谢

使用 SQL SERVER 2008 R2

0 投票
3 回答
144 浏览

sql - 在 T-SQL 数据库中通过引用按列计数和排序

我不确定我是否正确编写了以下 SQL 语句?(使用 T-SQL)

我有两张桌子:

表 1:[dbo].[t_Orgnzs]

表 2:[dbo].[t_Usrs]

我需要从表 2 中选择元素,按从 1 到 16 的 [oid] 列排序,但问题是 [oid] 引用了表 1 中的字符串,我实际上需要将其作为结果返回。

比如说,如果表格是这样布置的: 表 1:

和表 2:

结果查询必须返回:

所以这是我正在使用的 SQL:

我收到一个错误:“列名 'organizName' 无效。”

0 投票
1 回答
7812 浏览

sql-server-2008 - 如何在 WITH 子句 SQL Server 2008 中按长度排序?

按长度排序在 WITH 子句中不起作用。

0 投票
1 回答
6524 浏览

sorting - 通过分区查询的 row_number 索引提高性能

我有一个表格查询:

而且它的性能有点糟糕。

我们尝试创建 2 个索引,第一个用于按列(a 和 b)进行分区,第二个用于按列(c、d、e、f)排序。

使用解释计划,我们发现没有使用索引。尽管它们对于带有 group by 子句的其他查询很有用。

关于如何重构查询或重新创建索引以帮助提高此查询的性能的任何想法?

提前致谢

0 投票
1 回答
4047 浏览

sql - 根据条件重新启动rownumber

我正在运行一个查询并获得以下结果

数据

如何根据序列值进一步进行分区并分配行号,例如,每次在同一组 HOSPcode、MRN 中存在第一个时,我想重新启动行号

0 投票
3 回答
1246 浏览

sql - 根据另一列的值增加行

我在下面有一个 sql 查询,其中 dtMontno 可以从任何月份开始,并手动添加 Row 列,如下所示:

现在我的结果是:

有什么方法可以根据 dtMonthno 开始 Row 列,并且在上面的示例中递增一将从 5 开始并以 15 结束?

谢谢

0 投票
2 回答
20776 浏览

sql - 带有 INNER JOIN 的 SQL ROW_NUMBER

我需要在以下查询中使用 ROW_NUMBER() 来返回结果的第 5 到第 10 行。谁能告诉我我需要做什么?我一直在尝试无济于事。如果有人可以提供帮助,我将不胜感激。

0 投票
2 回答
2082 浏览

tsql - T-SQL:使用 ROW_NUMBER() 对 FOR XML 进行分页 - 不返回子节点

我正在运行以下查询

它以以下格式返回 XML(我省略了返回的属性值 - 这些不相关):

到现在为止还挺好。

现在,我想对结果进行分页。其中一部分要求上述查询作为子查询运行。所以我现在有以下查询:

但是,这将返回以下 XML

可以看到子查询的引入导致了FOR XML子句不再嵌套子结果……但是我不明白为什么。

谁能告诉我如何通过 ROW_NUMBER() 实现分页,并且结果的格式仍然像上面的第一个 XML 块?

0 投票
1 回答
554 浏览

sql-server-2008 - SQL Server 2008 求和并仅选择最大值?

当我只需要使用日期期间的最大值/最大值时,我试图了解如何进行求和。这有点像SQL Server:只选择具有 MAX(DATE) 的行,但不完全选择。谢谢阅读。

我得到三行。但我真正想要的是:

我不想要 tableid=1 的行,因为它是旧一批数据的一部分。较新的行表示稍后的插入(所有记录时具有相同日期时间的值对于批次是相同的)

因此,如果像这样插入新行:

那么数据应该是这样的:

0 投票
1 回答
2063 浏览

sql - 为什么递归 CTE 以程序方式运行分析函数 (ROW_NUMBER)?

我昨天回答了一个递归 CTE,它暴露了在 SQL Server 中实现这些方法的问题(也可能在其他 RDBMS 中?)。基本上,当我尝试ROW_NUMBER针对当前递归级别使用时,它会针对当前递归级别的每一行子集运行。我希望这将在真正的 SET 逻辑中工作,并针对整个当前递归级别运行。

从这篇 MSDN 文章看来,我发现的问题是预期的功能:

CTE 递归部分中的分析和聚合函数应用于当前递归级别的集合,而不是应用于 CTE 的集合。像 ROW_NUMBER 这样的函数只对当前递归级别传递给它们的数据子集进行操作,而不是传递给 CTE 递归部分的整个数据集。有关更多信息,请参阅 J. 在递归 CTE 中使用分析函数。

在我的挖掘中,我找不到任何地方可以解释为什么选择它以它的方式工作?这更像是基于集合的语言中的一种程序方法,因此这与我的 SQL 思维过程相悖,并且在我看来非常令人困惑。有人知道和/或有人可以解释为什么递归 CTE 以程序方式在递归级别处理分析函数吗?


这是帮助可视化的代码:

请注意,RowNumber每个代码输出中的列。

这是 CTE 的 SQLFiddle(仅显示第二级递归)

这是我期望 CTE 做的第二个 SQLFiddle(再次只需要第二级来显示问题)

我一直设想 SQL 递归 CTE 运行得更像这样 while 循环