获取每组最新的n条记录

2024-01-24

假设我有下表:

id  coulmn_id  value    date
1      10      'a'     2016-04-01
1      11      'b'     2015-10-02
1      12      'a'     2016-07-03
1      13      'a'     2015-11-11
2      11      'c'     2016-01-10
2      23      'd'     2016-01-11
3      11      'c'     2016-01-09
3      111     'd'     2016-01-11
3      222      'c'     2016-01-10
3      333      'd'     2016-01-11

对于n = 3,我想为每个id获取最新的n条记录

id  column_id  value    date
1      10        'a'     2016-04-01
1      12        'a'     2016-07-03
1      13        'a'     2015-11-11
2      11        'c'     2016-01-10
2      23        'd'     2016-01-11
3      111       'd'     2016-01-11
3      222       'c'     2016-01-10
3      333       'd'     2016-01-11

我回答是因为所引用的问题有一个不稳定的答案(我将在那里对此发表评论)。

这是一个应该有效的解决方案:

select t.*
from (select t.*,
             (@rn := if(@id = id, @rn + 1,
                        if(@id := id, 1, 1)
                       )
             ) as seqnum
      from t cross join
           (select @rn := 0, @id := -1) params
      order by id, date desc
     ) t
where seqnum <= 3;

解决方案的不同之处在于变量赋值都在单个表达式中。 MySQL 不保证表达式求值的顺序,因此如果代码要一致地工作,这一点非常重要。

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

获取每组最新的n条记录 的相关文章

  • MySql 视图脚本中的注释

    可以这样做吗 我尝试过多个 gui mysql workbench navicat toad for mysql 但没有一个保存这样的注释 something important select something else importan
  • “修改列”与“更改列”

    我知道 我们不能使用重命名列MODIFY COLUMN语法 但我们可以使用CHANGE COLUMN syntax 我的问题是 主要用途是什么modify syntax 例如 ALATER TABLE tablename CHANGE co
  • 计算2个日期之间每个日期的记录数

    我必须创建一个查询来返回多轴图表的结果 我需要计算为 2 个日期之间的每个日期创建的 ID 数量 我试过这个 DECLARE StartDate datetime2 7 11 1 2020 EndDate datetime2 7 2 22
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 使用什么框架来引导我的第一个生产 scala 项目?

    我正在第一次涉足 scala 的生产应用程序 该应用程序当前打包为 war 文件 我的计划是创建 scala 编译工件的 jar 文件 并将其添加到 war 文件的 lib 文件夹中 我的增强功能是通过 Jersey 公开的 mysql 支
  • MySQL NOT IN 来自同一个表中的另一列

    我想运行 mysql 查询来选择表中的所有行films其中的值title该列不存在于另一列的所有值中的任何位置 collection 这是我的表格的简化版本 其中包含内容 mysql gt select from films id titl
  • 如何将今天的日期返回到 Oracle 中的变量

    我想做这个 DECLARE today as smalldatetime SELECT today GetDate 但我需要一个oracle翻译 甲骨文使用SYSDATE 还有 ANSI 标准CURRENT TIMESTAMP 除其他外 S
  • CakePHP 查找 - 按字符串到整数排序?

    我想使用 CakePHP 从数据库中提取照片数组 按照片标题排序 0 1 2 3 我的查询当前看起来像 ss photos this gt Asset gt find all array conditions gt array kind g
  • SKIP加锁和nowait的区别

    pl sql 中 SKIP 锁定游标和 nowait 游标之间的区别 我认为我找到的这张图片是描述差异的最佳例子 详细说明 http viralpatel net blogs oracle skip locked
  • 如何从 MySQL 数据查询创建 XML 文件?

    我想知道一种仅使用 MySQL 查询创建 XML 文件的方法 根本不使用任何脚本语言 有关于这个主题的书籍 教程吗 UPDATE 我想澄清一下 我想使用 sql 查询将 XML 数据转发到 php 脚本 Here s 关于从 MySQL S
  • 使用 DISTINCT 进行查询需要很长时间

    我正在使用 Microsoft Access 2003 我的项目中的一个表单需要很长时间才能向用户显示 这是适用的查询 SELECT DISTINCT tb KonzeptDaten DFCC tb KonzeptDaten OBD Cod
  • 如何将所有父母的父母作为循环引用表中子对象的列?

    我有一个表格 其中有类似的列 entityID entityName parentID 我如何编写一个查询来返回实体的所有父级级别 以返回类似的内容 childentityname parentlevel1name parentlevel2
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • MYSQL:如何在同一查询中联接两个表,两次引用同一个表

    我有两张桌子 我正在尝试将下面的示例两个表与表 1 引用表 2 两次结合起来 例如 如果我查看表 1 组 2 和成员 7 它应该查找表 2 中的 ID 并给出输出 Group Members Name Name 2 7 Blue Dog T
  • 如何在 SQL Server 2012 中选择除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以选择所有列 但只选择我不想选择的特定列 我的意思是有时我会遇到这样的问题 表有数百个字段 而我只需要删除一个字段 我需要重写所有列吗 有什么窍门吗 喜欢select
  • 重写 URL,将 ID 替换为查询字符串中的标题

    我对 mod rewrite 很陌生 但我做了一些搜索 但找不到这个问题的答案 我有一个网站 它只有一个 PHP 页面 根据查询字符串中传递给它的 ID 提供数十页内容 我想重写 URL 以便此 ID消失并替换为从数据库中提取的页面标题 例
  • 研究MySQL、SQLite源码了解RDBMS实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道实现数据库是一个很大的话题 但我想通过研究数据库系统的源代码来基本了解数据库系统的工作原理 例如
  • 在 MySQL 数据库中保持 TEXT 字段唯一的最佳方法

    我想让 TEXT 字段的值在我的 MySQL 表中唯一 经过小型研究 我发现由于性能问题 每个人都不鼓励在 TEXT 字段上使用 UNIQUE INDEX 我现在想用的是 1 创建另一个字段来包含 TEXT 值的哈希值 md5 text v
  • 为什么 ISNUMERIC('.') 返回 1?

    最近我在 SQL Server 中使用 ISNUMERIC 时遇到了一个问题 导致找到了这段代码 SELECT ISNUMERIC 这会返回 1 如 true 所示 难道不应该像 false 一样返回 0 吗 See Numeric 损坏了
  • 如何使用 SQL 查询创建逗号分隔的列表?

    我有 3 个表 名为 应用程序 ID 名称 资源 id 名称 应用程序资源 id app id resource id 我想在 GUI 上显示所有资源名称的表格 在每一行的一个单元格中 我想列出该资源的所有应用程序 以逗号分隔 所以问题是

随机推荐

  • 如何禁用 PrimeFaces FileUpload 中的“选择”按钮直至上传完成

    是否可以阻止 禁用 FileUpload 中的 选择 按钮 我在高级模式下使用 p fileUpload 并设置 multiple true 如果我单击 上传 按钮开始上传所有文件 我想阻止添加更多文件 直到所有文件上传完毕 PrimeFa
  • 如何使用 C# 中的 MySQL 存储过程将表作为存储过程的输入发送?我有 T-SQL 工作

    在 Transact SQL 中 我有存储过程的输入参数 DataTable InputTabel READONLY InputTabel 定义为 CREATE TYPE InputTabel AS TABLE ID INT NULL RE
  • 学习Java,synchronized关键字的使用

    所以我正在测试synchronized关键词 这是我尝试过的一个例子 public class MyTest static int i 0 public static void main String args new Thread t1
  • 如何在 C# 中运行时计算字符串格式的布尔表达式的结果?

    假设我从文件中读取了这个条件 Condition Person Value Status 9 如果 Person 是我的代码中的一个类 如何在运行时检查此条件是否成立 虽然我自己没有亲自这样做过 this http www codeproj
  • 观察、重新编译并重新启动

    我一直在寻找一个示例 说明如何使用 Grunt 的监视模块在发生文件更改时按顺序执行几个步骤 我还没有找到任何一个很好的例子 所以如果有人能指出我正确的方向 那就太好了 构建 TypeScript 项目 我有这个工作 监视目录中的文件更改
  • Mongoengine PointField 给出了预期的位置对象,位置数组格式不正确错误

    我有一个模型如下 class Station Document location PointField 尝试按如下方式写入数据 station Station station location type Point coordinates
  • 与多个项目和开发人员签署程序集的最佳实践

    我正在寻找在拥有 30 多个开发人员 20 多个解决方案和 60 多个项目的组织中应用签名程序集的建议和最佳实践 我们使用 Visual Studio Team System 2008 和 TFS 虽然创建密钥和签署程序集是一个非常简单且直
  • SQL Server 2000 实时数据镜像

    我目前正在使用 2 个 sql 2000 服务器 其中一个可以查询 但不能添加任何数据库 这导致第二个服务器有很多查询 这些查询使用第一个服务器作为链接服务器 我想在查询实时数据的同时提高性能 是否可以将实时数据镜像到第二台服务器 这样查询
  • AWS ACM SSL 协议错误

    我正在使用 AWS EC2 实例 亚马逊 Linux 弹性 IP 尝试通过 ACM 设置 SSL 证书已验证 负载均衡器正在通过健康检查 侦听 prot 443 转发到端口 80 最初 在测试 https 时 我收到连接被拒绝的消息 这让我
  • 为什么需要 virtualenv?

    我是 Python 初学者 I read virtualenvPython项目开发时首选 我根本无法理解这一点 为什么是virtualenv首选 虚拟环境 http virtualenv readthedocs org en latest
  • 如何添加迄今为止的天数(作为列的值)?

    我在 Spark 中向日期格式列添加天数 数字 时遇到问题 我知道有一个功能date add它有两个参数 日期列和整数 date add date startdate tinyint smallint int days 我想使用整数类型的列
  • Siri 快捷方式 iOS 13 错误 INUIAddVoiceShortcutButton

    在我的项目中 我使用 Siri 快捷方式INUIAddVoiceShortcutButton 我使用这种方法来创建按钮并关联NSUserActivity let button INUIAddVoiceShortcutButton style
  • 如何在不使用 tabindex 的情况下进行 Tab 键切换时跳过项目?

    在 javascript onfocus 处理程序中 是否有一种好方法可以将焦点转移到 Tab 键顺序中的下一个项目 而无需手动输入下一个项目的 ID 我在 Django jQuery 中构建了一个 HTML 日期选择器 这是一个行编辑 然
  • 发送不带接受/拒绝选项的 Outlook 会议请求

    我正在使用我的 NET 程序发送 Outlook 会议请求 使用以下内容作为源 在没有 Outlook 的情况下发送 Outlook 会议请求 https stackoverflow com questions 461889 sending
  • 如何制作 GUI?

    我为 Nintendo DS 制作了 GUI 系统的许多不同的独立部分 例如按钮 文本框和选择框 但我需要一种将这些类包含在一个 Gui 类中的方法 以便我可以将所有内容都绘制到屏幕上一次 并立即检查所有按钮以检查是否有任何按钮被按下 我的
  • 是否可以将批量 FFT 与 CUDA 的 cuFFT 库和 cufftPlanMany 重叠?

    我正在尝试并行化称为 Chromaprint 的声学指纹识别库的 FFT 变换 它的工作原理是 将原始音频分割成许多重叠的帧并对它们应用傅立叶变换 Chromaprint 使用 4096 的帧大小 2 3 重叠 例如 第一帧由元素 0 40
  • 可以用 Electron 进行复制/粘贴吗?

    我正在使用 Electron Nightmare js 进行单元测试 我需要复制一个string到 clibboard gt 聚焦某个元素 gt 粘贴内容 然后测试是关于我的 JavaScript 是否正常处理 我在电子文档中读到剪贴板 A
  • R 中使用 mapply 对子集参数进行非标准评估

    我无法使用subset的论证xtabs or aggregate 或我测试过的任何功能 包括ftable and lm with mapply 以下调用失败并显示subset争论 但它们的工作没有 mapply FUN xtabs form
  • 将 pyQt UI 转换为 python

    有没有一种方法可以将使用 qtDesigner 形成的 ui 转换为 python 版本来使用 而无需额外的文件 我在这个 UI 中使用 Maya 并且将此 UI 文件转换为可读的 Python 版本来实现 这真的很棒 您可以使用pyuic
  • 获取每组最新的n条记录

    假设我有下表 id coulmn id value date 1 10 a 2016 04 01 1 11 b 2015 10 02 1 12 a 2016 07 03 1 13 a 2015 11 11 2 11 c 2016 01 10