使用 MSSQL 中的附加 max() 条件从数据库中检索每组中的最后一条记录

2024-05-07

这是一个后续问题从数据库中检索每组中的最后一条记录 - SQL Server 2005/2008 https://stackoverflow.com/questions/4751913/retrieving-last-record-in-each-group-from-database-sql-server-2005-2008

在答案中,提供此示例是为了检索一组参数的最后一条记录(下面的示例检索 computername 中每个值的最后更新):

 select t.*
 from t
 where t.lastupdate = (select max(t2.lastupdate)
                  from t t2
                  where t2.computername = t.computername
                 );

然而,就我而言,“lastupdate”不是唯一的(某些更新是分批进行的,并且具有相同的lastupdate值,如果“computername”的两个更新在同一批次中进行,您将获得“computername + lastupdate”的非唯一输出”)。 假设我还有一个自动递增的字段“rowId”。缓解措施是在查询中包含 max('rowId') 字段的另一个标准。

注意:虽然该示例使用特定于时间的名称“lastupdate”,但实际的选择标准可能与时间根本无关。

因此我想问一下,什么是表现最好的查询根据“组定义参数”(在上面的情况下为“计算机名”)和最大 rowId 选择每个组中的最后一条记录?


如果你没有独特性,那么row_number()更简单:

 select t.*
 from (select t.*,
              row_number() over (partition by computername order by lastupdate, rowid desc) as seqnum
       from t
      ) t
where seqnum = 1;

使用正确的索引,相关子查询通常会更快。然而,性能差异并不是那么大。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 MSSQL 中的附加 max() 条件从数据库中检索每组中的最后一条记录 的相关文章

随机推荐

  • WebKit 是否使用 OpenGL 来渲染 CSS 过渡?

    WebKit 是使用 OpenGL 来渲染 CSS 过渡 还是使用软件渲染 WebKit 只是一个前端 这取决于后端和硬件支持 谷歌浏览器使用skia http code google com p skia 作为后端 它可以使用软件或硬件
  • 格式化 mlogit 的数据

    为了通过 mlogit 进行多项 Logit 分析 我正在经历一段艰难的时间来整理我的数据集 我的数据集可从url https raw githubusercontent com sjkiss Survey master mlogit ou
  • 使用三元运算符“不执行任何操作”[重复]

    这个问题在这里已经有答案了 我想像这样使用三元运算符 仅检查true声明的一部分 foo bar Do nothing 是否可以排除该语句的 else 部分的逻辑 我尝试使用return 但编译器给出了错误 基本上我想要实现的是使用三元运算
  • 具有多个输入的 Keras TimeDistributed 层

    我正在尝试使以下代码行正常工作 low encoder out TimeDistributed AutoregressiveDecoder X tf embeddings Where AutoregressiveDecoder是一个需要两个
  • 使用 'gitbranch' 命令显示当前 git 分支

    我在处理太多分支时遇到问题 需要花费很多时间才能找到我现在正在处理的当前分支 有没有办法在使用时显示的列表顶部列出当前分支git branch命令 如果您只想要签出分支 请使用git branch show current
  • 在 git 中编辑分支?

    我在 github 网站上创建了一个分支 该分支不在我的本地存储库中 如何将该分支带到我的本地计算机 对其进行编辑 然后将其推送回我的 github 帐户 在本地工作目录中输入 git fetch origin newbranch git
  • Android FAB 图标始终为黑色,带有 MaterialComponents 主题

    我正在创建一个 Android 应用程序 并使用 AndroidX 库和 Material design 主题 我的应用程序主题为styles xml is 我有来自自定义库的以下 F
  • iOS 中 NSNotificationCenter 的 if 语句

    我正在尝试在一个动画结束时开始另一个动画 我正在检查这样的回调 NSNotificationCenter defaultCenter addObserver self selector selector animationDidStopNo
  • 设置rgl设备的大小

    我的 rgl 设备的全屏 非全屏有问题 目前我使用R 3 00 我将 persp3d 图 库 rgl 绘制到我的设备中 它在一个非常小的窗口中打开 R代码 persp3d x y z theta 50 phi 25 expand 0 75
  • 如何使用 git-svn 使 svn:external 保持最新?

    将我的存储库视为 SVN 存储库 我得到 svn co http myrepo foo trunk foo foo bar baz gt http myrepo baz trunk 将其视为 Git 存储库 我得到 git svn clon
  • 将对象序列化为自定义字符串格式以在输出文件中使用的最佳实践

    我正要在特定的业务类上实现 ToString 的重写 以便生成 Excel 友好的格式来写入输出文件 稍后将拾取并处理该输出文件 数据应如下所示 5555555 LASTN SR FIRSTN 5555555555 13956 STREET
  • 更改 Office UI Fabric React 组件的颜色/主题?

    我正在尝试使用Office UI Fabric React 组件 https dev office com fabric components在我的网络应用程序中 有没有办法改变组件的颜色或主题 例如 我尝试了这样的事情 ReactDOM
  • 在 uwsgi 应用程序中运行子进程

    我正在编写一个 Django 应用程序 它需要执行长时间的异步任务 最初的想法是从执行该工作的视图启动一个子流程 并在另一个视图中监视进度 当应用程序通过以下方式启动时 这个想法运行良好manage py runserver 但是当它在 u
  • JavaScript RegEx 到 CamelCase 连字符的 CSS 属性

    我正在尝试更改 CSS 属性 如下所示 moz border radius 像这样的 JavaScript CSS 属性 MozBorderRadius 我正在使用这个正则表达式 var exp new RegExp a z gi cons
  • Laravel 5 / Lumen 请求标头?

    所以我不太确定如何解决这个问题 我已经尝试了一些方法 我将在下面列出其中之一 但是我想要做的是将 http 请求中发送的信息存储在 PHP 变量中 这是 Chrome Postman 发送我想要发送的请求的视图 注意 pubapi 是一个
  • pytest - 如何将 pytest_addoption 值传递给 pytest 参数化?

    我必须在我存储在 pytest 中的 pytest 命令中传递一个参数addoption 我想在 pytest 中使用这些值parametrize功能 Command pytest range from 3 range to 5 test
  • 相机标定(OpenCV 2.3)-如何使用畸变参数?

    我有一组带有一些附加标记的刚体图像 我在这些标记之一中定义了一个原点坐标系 我想获得该坐标系与在相机原点定义的坐标系之间的旋转和平移 我尝试了一段时间 POSIT 以下this http goo gl cUYYt 但从未获得可接受的结果 直
  • 保存 ScrollViews 位置并稍后滚动回该位置(偏移位置)

    我找到了保存 ScrollViews 的方法offset with a GeometryReader and a PreferenceKey SwiftUI 从 ScrollView 获取当前滚动位置 https stackoverflow
  • 作为二进制 tarball 的便携式 conda 环境

    我正在尝试构建一个便携式conda环境 因此 我们可以稍后将其压缩并分发到另一台服务器或许多服务器 我们搭建环境的地方和后面部署环境的地方是两个不同的地方 我注意到conda create and conda install将环境位置硬编码
  • 使用 MSSQL 中的附加 max() 条件从数据库中检索每组中的最后一条记录

    这是一个后续问题从数据库中检索每组中的最后一条记录 SQL Server 2005 2008 https stackoverflow com questions 4751913 retrieving last record in each