SQL:给定行之前和之后的行数

2023-12-19

问题是我们要获取给定行(例如由主键标识)之前和之后的总行数。

我尝试过在 T-SQL (MSSQL 2008) 中执行以下操作。它给出了正确的结果,但我不知道这是否是最好的方法。

;WITH cte_before AS 
(
    SELECT ROW_NUMBER() OVER ( Order By CustomerId ) [Row Number], customerid, 
           firstName 
    FROM SalesLT.Customer
 ),
cte_nums AS 
(
    SELECT ROW_NUMBER() OVER ( Order By CustomerId ) [Row Number1] 
    FROM SalesLT.Customer
)
SELECT [Row Number]-1 [before], MAX([Row Number1]) - [Row Number]
       , CustomerID, FirstName 
FROM cte_nums, cte_before
GROUP BY [Row Number], CustomerID, FirstName
HAVING CustomerID = 55

我们如何在 T-SQL 中改进它以及如何在其他 SQL 方言和服务器(如 Oracle、MySQL、sqlite、FireBird 等)中实现它


我认为这适用于任何方言:

select 
   (select count(*) from SalesLT.Customer where customerid < 55) as rows_before,
   (select count(*) from SalesLT.Customer where customerid > 55) as rows_after,
   CustomerID, FirstName
from SalesLT.Customer
where CustomerID = 55
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL:给定行之前和之后的行数 的相关文章

  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可
  • SQL Server中主键和唯一索引的区别[重复]

    这个问题在这里已经有答案了 我的公司目前正在重写我们最近获得的一个应用程序 我们选择使用 ASP net mvc4 来构建这个系统 并使用实体框架作为我们的 ORM 我们收购的公司的前任所有者非常坚定地要求我们使用他们的旧数据库 并且不对其
  • 从VBA中的数组批量插入到sql中

    我正在尝试在 Excel 中构建一个按钮 将所选区域上传到 SQL Server 中的表中 第一行将自动视为列标题 这件事该怎么继续下去呢 我想要的是简单和超快的上传 这是我的想法 我将选择选定的区域 然后将其保存为 txt 文件 然后对其
  • Oracle SQL——从字符串中删除部分重复项

    我有一个表 其中有一列包含字符串 如下所示 static text here 1abcdefg1abcdefgpxq 从这个字符串1abcdefg重复两次 所以我想删除该部分字符串 然后返回 static text here 1abcdef
  • SQL Server 2012(代号:Denali)CTP 3的FIRST_VALUE和LAST_VALUE的实际用途是什么

    随着 Denali 的 CTP 3 版本的发布 我们有了更多的分析功能 其中我对其中两个感兴趣 a 第一个值 http msdn microsoft com en us library hh213018 28v SQL 110 29 asp
  • SQL 用新值替换旧值

    我有一个名为tbl Products 其中有一列名为articlenumber并且充满了像这样的数字s401 s402 etc 我生成了一个包含新商品编号的列表 它将替换旧的商品编号 s401 I00010 s402 I00020 s403
  • 删除原始数据中部分重复的记录

    我需要删除表中时间间隔为 1 或 2 分钟或相同且必须相同的所有记录ID但保留第一个记录 ID Time SN SD WE FW 10 2014 06 30 19 17 37 000 I 0 100 0 10 2014 06 30 19 1
  • Mysql为简单频繁查询创建排序索引性能

    我正在处理一个包含大约 400 万条消息条目的 mysql 表 并尝试根据时间戳选择最新的 50 条消息 另一个要求是返回的消息不以固定前缀开头 问题是单个查询大约占用 25 的 cpu 并且最多需要 1 5 秒 该查询经常由多个客户端执行
  • 为什么 sql 字段名称中不应该包含逗号?

    人们一直告诉我列名中不应包含空格 我只是想知道 这是为什么 这是我为学校创建的一些数据库表遇到的问题 字段名称包括 Preble 和 Darke 相反 它们需要是 普雷布尔县 俄亥俄州 和 达克县 俄亥俄州 如果它们是行名称 我只需创建一个
  • 仅当变量不为空时 SQL 添加过滤器

    您好 我有疑问如下 SELECT route id ROUTE ID FROM route master NOLOCK WHERE route ou 2 AND route query l s query AND lang id 1 这里
  • Postgresql 中的 id 列位置重要吗?

    我正在测试删除主键列 id 的迁移 我想使用外键作为主键 当我运行并恢复迁移时 我看到表的状态是相同的 只是 id 列现在是最后一个 它会以任何方式改变我的数据库的行为吗 我是否应该费心去恢复迁移恢复代码中的列顺序 理论上一切都应该没问题
  • MySQL 中的断言

    我有一个针对大型数据库运行的 SQL 脚本 我想在开始时提出几个简单的查询 作为健全性检查 有没有办法在MySQL中写断言 或者任何类型的 选择 如果它与该值不匹配 则中止整个脚本 一些疯狂的代码 要点是 SET可能会引发 mysql 变量
  • 具有 LINQ 支持的最完整的 ORM?

    我正在寻找一个提供完整或接近完整的 LINQ 支持的 ORM LINQ 到 SQL 支持 LINQ 内部的所有内容 Contains Math Log 等 在不创建新数据上下文的情况下无法预先加载关系属性 ADO NET 实体框架 糟糕的
  • SQL Server PIVOT 函数

    我有一个检索所有代理及其模块的查询 结果集将每个模块返回 1 行 SELECT am agentID AS agentid pa agentDisplayName agentdisplayname m ModuleName ModuleNa
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7
  • 消息 102,级别 15,状态 1,第 1 行“ ”附近的语法不正确

    我试图从临时表中查询 但不断收到此消息 Msg 102 Level 15 State 1 Line 1 Incorrect syntax near 有人能告诉我问题是什么吗 是因为要转换吗 查询是 select compid 2 conve
  • 更新plpgsql中触发器函数中的多列

    给出以下架构 create table account type a id SERIAL UNIQUE PRIMARY KEY some column VARCHAR create table account type b id SERIA
  • SQL Group BY,每个组的前 N ​​个项目

    我有一个 SQL 查询 可以获取给定商店中销量最高的 5 件商品 SELECT TOP 5 S UPCCode SUM TotalDollarSales FROM Sales S WHERE S StoreId 1 GROUP BY S U
  • 让 Prometheus 发送 SQL 查询

    我正在尝试使用普罗米修斯 https prometheus io 监视我的 MySQL 数据库 但似乎找不到添加 SQL 查询的区域 例如 我想运行一个返回值的 SQL 查询 然后将该值添加到图表中 发送警报 有没有办法让 Promethe
  • 通过将行旋转为动态数量的列来在 MySQL 中创建摘要视图

    我在 MySQL 中有一个表 其中包含以下字段 id company name year state 同一客户和年份有多行 以下是数据示例 id company name year state 1 companyA 2008 1 2 com

随机推荐

  • 如何使用本地 Azure Cli 安装运行 Azure Cli 脚本

    首先 我觉得问这个问题很疯狂 很抱歉 如果这是一个非常愚蠢的问题 这一定是显而易见的 因为我已经到处搜索但找不到答案 我应该如何运行此 Azure 脚本来创建 Azure Function App https learn microsoft
  • 使用锚标记请求文件时强制浏览器不使用缓存

    我有一个锚标记 用于请求下载文件 像这样 a href app results fileName t12 txt other param something title Click to download Download a 该文件可能会
  • 通过迁移改变 Laravel 5 表

    我正在用 laravel 5 制作一个应用程序 我更改了我定义的 投票 字段 table gt enum vote 1 0 1 并且应该如下 table gt enum vote 1 2 3 4 5 为此 您应该执行以下步骤 创建新的迁移文
  • 在 Linux 上验证电子邮件地址

    我正在使用类似的命令sendmail bv email protected cdn cgi l email protection在向人们发送实际电子邮件之前验证某些电子邮件地址以确认该地址是否有效 它适用于我测试过的大多数网站 但有时 我使
  • Indy 的全局、线程安全、cookie 管理器

    我的 Delphi 2010 应用程序使用多线程上传内容 上传的数据被发布到需要登录的 PHP Web 应用程序 所以我需要使用共享 全局 cookie 管理器 我正在使用Indy10 修订版 4743 因为 TIdCookieManage
  • 不符合 Swift 中的 UITableViewDataSource 协议,为什么?

    这是我的代码 尽管我编写了两种方法的实现 但编译器仍然显示错误 请告诉我为什么 导入 UIKit class FirstViewController UIViewController UITableViewDelegate UITableV
  • 无法加载资源:net::ERR_EMPTY_RESPONSE http://test.com

    我正在开发一个 chrome 扩展 它将 XMLHttpRequest 发送到 URL 获取 JSON 格式的响应 解析响应并显示记录列表 它工作正常 问题是当用户执行任何操作并返回列表部分时 系统遵循相同的流程发送 XMLHttpRequ
  • 在 TypeScript 中扩展原生 JavaScript Number 对象

    根据 TypeScript 文档 扩展已经存在的接口就像使用新属性重新声明它一样简单 然后为这些属性提供实现 我曾多次使用这种技术向本机 JavaScript 对象添加静态方法扩展 然而 这不适用于成员函数 例如 TypeScript Pl
  • Linux中文件描述符的上限

    在任何 Linux 系统 特别是 ubuntu 10 04 中可以使用的文件描述符的上限是多少 我使用的是 Ubuntu 10 04 64 位 服务器的 CPU 架构是 x86 64 客户端的 CPU 架构是 i686 现在我已经将我的 f
  • Maven 校验和失败

    我正在开发一个使用 Maven 作为构建工具的项目 我使用的是该工具的 2 2 1 版本 最近 一位同事提到 由于校验和错误 他无法构建该项目 我没有收到这些错误 因此我删除了本地存储库 果然 我在下次尝试构建时也遇到了校验和错误 我们使用
  • 无法终止线程

    我在我的项目中使用线程 我想立即杀死并终止一个线程 sample type test class TThread private Private declarations protected procedure Execute overri
  • 如何在屏蔽数组上运行numpy函数percentile()?

    我尝试从具有 NoData 值的数组中检索百分位数 在我的例子中 Nodata 值由 3 40282347e 38 表示 我认为屏蔽数组会从进一步的计算中排除这些值 我成功创建了掩码数组 但对于 np percentile 函数 掩码没有效
  • 在 jQuery/JavaScript 中模拟链接上的点击

    我想使用 JavaScript 模拟点击页面上的任何链接 如果该链接有某个函数绑定到其 onclick 事件 通过我无法控制的任何其他 JS 则必须调用该函数 否则该链接应以正常方式运行并打开一个新页面 我不确定仅检查 onclick 处理
  • 在为内核编码时可以使用 stdio...吗?

    我需要构建一个操作系统 一个非常小且基本的操作系统 实际上功能最少 用 C 编写 可能是一个 CUI 操作系统 它可以进行一些内存管理 并且至少有一个文本编辑器和一个计算器 它只是一个关于如何编写对硬件具有完全和直接控制的代码的实验 我仍然
  • 使用顶点着色器旋转纹理

    我正在尝试旋转顶点着色器内的纹理 我有一个指向纹理的指针 出于我的目的 该指针逆时针旋转 90 度 我不想要在调用之前手动旋转纹理glTexImage2D 我可以用 version 120 only 这是我原来的顶点着色器 version
  • 更改 R/lattice 中与多个面板关联的条带的背景和文本

    以下是我正在处理的示例 require lattice data barley xyplot yield year site data barley 我想为不同的 sprips 设置不同的条带颜色 并且字体颜色也根据背景颜色进行不同的优化
  • 如何在 Android 应用程序中创建数据库?

    我正在尝试在我的 Android 应用程序中使用 SQLite 我创建了这样的辅助类 public class EventoSQLHelper Configura o da base nome e vers o private static
  • searchable_dropdown 不适用于类列表

    我使用 searchable dropdown 1 1 0 包实现了一个颤振下拉菜单 我用我的班级列表进行了测试 发现搜索文本字段框不适用于我的班级列表 我希望当我在列表中的字符串 整数中搜索值时 我的下拉搜索框能够正常工作 例如 我希望当
  • 未知的正则化器:tensorflowjs 中的 L2

    我已经使用 model 在 python 中训练了一个模型 reg 0 000001 model Sequential model add Dense 24 activation tanh name input dense input sh
  • SQL:给定行之前和之后的行数

    问题是我们要获取给定行 例如由主键标识 之前和之后的总行数 我尝试过在 T SQL MSSQL 2008 中执行以下操作 它给出了正确的结果 但我不知道这是否是最好的方法 WITH cte before AS SELECT ROW NUMB