在 SQL 中而不是在 Group By 中选择列

2023-12-10

我一直在尝试查找一些有关如何选择 SQL 中 Group By 语句中未包含的非聚合列的信息,但到目前为止我发现的任何内容似乎都无法回答我的问题。我有一个包含我想要的三列的表格。一个是创建日期,一个是按特定声明 ID 对记录进行分组的 ID,最后一个是 PK。我想查找每组声明 ID 中具有最大创建日期的记录。我选择 MAX(创建日期)和声明 ID (cpe.fmgcms_cpeclaimid),并按声明 ID 分组。但我需要这些记录 (cpe.fmgcms_claimid) 中的 PK,如果我尝试将其添加到我的 select 子句中,则会收到错误。我无法将它添加到我的 group by 子句中,因为那样它就会破坏我预期的分组。有谁知道这有什么解决方法吗?这是我的代码示例:

Select MAX(cpe.createdon) As MaxDate, cpe.fmgcms_cpeclaimid 
from Filteredfmgcms_claimpaymentestimate cpe
where cpe.createdon < 'reportstartdate'
group by cpe.fmgcms_cpeclaimid

这是我想要得到的结果:

Select MAX(cpe.createdon) As MaxDate, cpe.fmgcms_cpeclaimid, cpe.fmgcms_claimid 
from Filteredfmgcms_claimpaymentestimate cpe
where cpe.createdon < 'reportstartdate'
group by cpe.fmgcms_cpeclaimid

a 结果集中的列select查询与group by条款必须是:

  • 用作其中之一的表达式group by标准,或...
  • 聚合函数,或...
  • 字面值

因此,您无法在单个简单查询中完成您想做的事情。要做的第一件事是以清晰的方式陈述你的问题,例如:

我想找到最新的个人索赔行 我的索赔表中每个组的创建日期

Given

create table dbo.some_claims_table
(
  claim_id     int      not null ,
  group_id     int      not null ,
  date_created datetime not null ,

  constraint some_table_PK primary key ( claim_id                ) ,
  constraint some_table_AK01 unique    ( group_id , claim_id     ) ,
  constraint some_Table_AK02 unique    ( group_id , date_created ) ,

)

首先要做的是确定每个组的最近创建日期:

select group_id ,
       date_created = max( date_created )
from dbo.claims_table
group by group_id

这为您提供了满足要求的第一部分(从每个组中选择单独的行)所需的选择标准(每组 1 行,有 2 列:group_id 和高水位创建日期)。这需要是一个虚拟表你的期末考试select query:

select *
from dbo.claims_table t
join ( select group_id ,
       date_created = max( date_created )
       from dbo.claims_table
       group by group_id
      ) x on x.group_id     = t.group_id
         and x.date_created = t.date_created

如果该表不是唯一的date_created within group_id(AK02),您可以获得给定组的重复行。

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

在 SQL 中而不是在 Group By 中选择列 的相关文章

  • 如何查找当前数据库类型

    我们有一个 SQL 脚本可以在多种类型的数据库上执行 是否可以获取正在执行 SQL 脚本的当前数据库的类型 注意 我们不能使用非标准 SQL 即 TSQL 等 不 ANSI SQL 中没有任何关于确定数据库供应商的内容
  • 在 MySQL 中对整数字段运行带引号的数字(字符串)查询时会发生哪些复杂情况

    在 SQL 中 不应引用整数 因为如果引用 它将是一个字符串 但我很好奇如果我这样做会出现什么问题 并发症 例如 SELECT FROM table WHERE id 1 正确的 vs SELECT FROM table WHERE id
  • PL/pgSQL SELECT 到数组中

    这是我的函数声明和主体的一部分 CREATE OR REPLACE FUNCTION access update RETURNS void AS DECLARE team ids bigint BEGIN SELECT INTO team
  • 将 .MDF SQL Server 数据库与 ASP.NET 结合使用与使用 SQL Server

    我目前正在 ASP NET MVC 中编写一个网站 我的数据库 其中还没有任何数据 只有正确的表 使用 SQL Server 2008 我已将其安装在我的开发计算机上 我使用服务器资源管理器从应用程序连接到数据库 然后使用 LINQ to
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • 需要按天分割日期时间范围

    我有一个需要根据日期时间拆分的表 输入表 ID Start End A 2019 03 04 23 18 04 2019 03 04 23 21 25 A 2019 03 04 23 45 05 2019 03 05 00 15 14 所需
  • 不带 GROUP BY 的聚合查询

    这个查询似乎在我的旧机器上完美运行 但是 在我的 MySQL 5 7 14 和 PHP 5 6 25 的新机器上 它会抛出错误 致命错误 未捕获异常 PDOException 并带有消息 SQLSTATE 42000 语法错误或访问冲突 1
  • SQL Server 2008R2 和创建 XML 文档

    论坛上的第一篇文章 因为我真的被这个问题困住了 以下查询正确地将有效的 XML 文档分配给 xTempXML 变量 类型为 xml 注 文档的长度 转换为varchar max 711 select xTempXML select Pres
  • T-SQL:用最新的非空值替换 NULL 的最佳方法?

    假设我有这张表 id value 1 5 2 4 3 1 4 NULL 5 NULL 6 14 7 NULL 8 0 9 3 10 NULL 我想编写一个查询来替换任何NULL值与表中最后一个不为空的值在那一栏里 我想要这个结果 id va
  • 通过 osql.exe 运行脚本时出现问题

    我尝试以这种格式运行我的软件的更新脚本 osql exe i path to script U 用户 P 密码 S sqlserver 位置 d 数据库名称 n b 大多数脚本的格式相同 并且都以 GO 结尾 其中很多都运行得很好 但随机脚
  • 检查两个“select”是否相等

    有没有办法检查两个 非平凡的 选择是否等效 最初我希望两个选择之间有形式上的等价 但是答案在证明 sql 查询等价性 https stackoverflow com questions 56895 proving sql query equ
  • 根据日期顺序排名

    我的数据如下 Heading Date A 2009 02 01 B 2009 02 03 c 2009 02 05 d 2009 02 06 e 2009 02 08 我需要如下排名 Heading Date Rank A 2009 02
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • SQL 连接两个没有关系的表

    我有具有相同结构的不同表 我想通过其中一列将它们连接起来 问题是他们不共享该专栏中的信息 Table 1 Type A Name Value Table 2 Type B Name Value 结果表 在单列中 nameFromA name
  • 数字表与递归 CTE 生成一系列数字

    为什么使用数字表比使用递归 CTE 动态生成它们要快得多 在我的机器上 给定一张桌子numbers单列n 主键 包含从1到100000的数字 查询如下 select n from numbers 大约需要 400 毫秒才能完成 使用递归 C
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 使用加权行概率从 PostgreSQL 表中选择随机行

    输入示例 SELECT FROM test id percent 1 50 2 35 3 15 3 rows 你会如何编写这样的查询 平均 50 的时间我可以获得 id 1 的行 35 的时间 id 2 的行 15 的时间 id 3 的行
  • 是否可以引用同一个表中的不同列?

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR

随机推荐

  • 嵌入式二进制

    错误 嵌入的二进制文件未使用与父应用程序相同的证书进行签名 验证嵌入式二进制目标的代码签名设置与父应用程序的代码签名设置是否匹配 另外 为什么我的个人资料不断被 XC 通配符个人资料替换 解决了问题 我按照这个步骤解决了 转到我的构建设置并
  • 字典中值的字典 KeyError

    我在字典中有一个字典 123456789 u PhoneOwner u Bob Frequency 0 98765431 u PhoneOwner u Sarah Frequency 0 这个想法是扫描号码拨打的电话列表并与字典进行比较 每
  • 使用 Flexbox 连续显示 4 个 div

    我试图使用下面的 html 在一行中显示 4 个框 所以一排应该有 4 个盒子 我总共有 8 个盒子 有 2 行 4 列 div class parent div class child box1 A Child div div class
  • Android WebView 在 WebView 中单击打开,而不是默认浏览器

    我使用 WebView 做了一个示例应用程序 在该 Web 视图中 URL 来自 Web 服务 它工作正常 但如果我单击该 WebView 中的任何链接 它会自动转到默认 Web 浏览器 但我只想在我的应用程序网络视图中打开 这是我的代码
  • “不是空格也不是连字符”的正则表达式是什么

    我尝试了这个 但它不起作用 s 有任何想法吗 s 应该有效 所以会的 s char 类 在 char 类内部 是个 否定词出现在开头时 s 空格的缩写 字面连字符 连字符是 元字符位于 char 类中 但不是 当它出现在开头或 在最后
  • Websocket 不支持 SSL

    https www hi todd com websocket 我使用 MQTT 协议创建了一个演示 它在 HTTP 连接下运行良好 但是当我尝试将 HTTP 更改为 https 时 出现连接错误 我已在 mosquitto conf 文件
  • 是否可以选择带有 nth-child 的最后 n 个项目?

    使用标准列表 我尝试选择最后 2 个列表项 我有各种排列An B但似乎没有选择最后两个 li nth child n 2 selects from the second onwards li nth child n 2 selects ev
  • 在 Perl 中,如果强制使用 foreach 循环,如何找到字符串中匹配的位置?位置

    我必须使用 while 循环找到较大字符串中匹配字符串的所有位置 并使用 foreach 循环作为第二种方法 我已经弄清楚了 while 循环方法 但我陷入了 foreach 方法 这是 while 方法 my sequence AACAA
  • 在iOS中,如何向下拖动来关闭模态框?

    关闭模态框的常见方法是向下滑动 我们如何允许用户向下拖动模态框 如果足够远 则模态框被关闭 否则它会动画回到原始位置 例如 我们可以发现它用于 Twitter 应用程序的照片视图或 Snapchat 的 发现 模式 类似的线程指出 当用户向
  • Android 10 版本之后如何验证 IMEI 号码?

    我需要验证 IMEI 号码 他们有验证输入 IMEI 的机制吗 我们可以获得 true 或 false 的验证状态吗 您不能 第三方应用程序不能使用 IMEI 也不能使用手机的序列号和其他不可重置的设备标识符 对不可重置设备标识符的限制 从
  • 在上下文菜单中定位菜单项图像(MENUITEMINFO 的 hbmpItem)

    我正在将菜单项插入到主题文本控件的 Outlook 上下文菜单中 在这里您可以找到我之前提出的有关执行此操作的问题 我遇到的问题是 菜单项的图像在 Outlook 2010 中的位置很奇怪 在 Outlook 2007 中 它的位置不同 在
  • C++ 使用 ShellExecute 打开链接

    如果我这样写 ShellExecute NULL open www google com NULL NULL SW SHOWNORMAL 一切都很好 而且都是应该的样子 但我希望用户可以输入他想去的链接 std cout lt lt Ent
  • 找到两个数组之间的最小差异[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 给定两个排序数组 A 和 B 找到 i j 其中 A i B j 是最小值 由于数组已排
  • 添加键盘快捷键来执行 Chrome 扩展

    我创建了一个 chrome 扩展 我想使用键盘快捷键来执行它 Snippet suggested key default Ctrl Shift F 我尝试过不同的组合 例如 Ctrl Shift A Ctrl Shift D Alt X 和
  • 需要 T-SQL 查询找到所有可能的方式

    create table sample product varchar 100 Price float insert into sample values Pen 10 insert into sample values DVD 29 in
  • 滞后看不到 mutate 对前一行的影响

    我似乎偶然发现了一个mutate lag ifelse我无法解释的行为 我有以下 简化的 数据框 test lt data frame type c START END START START START START END strings
  • 跳跃列表与二叉搜索树

    我最近遇到了一种称为跳过列表 它似乎与二叉搜索树具有非常相似的行为 为什么要在二叉搜索树上使用跳跃列表 跳过列表更适合并发访问 修改 赫伯 萨特写了一篇article关于并发环境中的数据结构 它有更深入的信息 二叉搜索树最常用的实现是红黑树
  • 在 Ubuntu 中从源存储库升级 git

    我想使用升级 git源存储库在Ubuntu中 正如您所注意到的 最后一个稳定版本是 2 0 2 但我有 1 9 4 我克隆了 git 存储库 但我不知道如何继续 我想以某种方式做到这一点 我可以理解如何与存储库的分支和标签进行交互 所以我不
  • Flutter中如何使用UUID访问数据库?

    我正在使用以下函数来检索 UID FirebaseAuth auth FirebaseAuth instance getUID async final FirebaseUser user await auth currentUser fin
  • 在 SQL 中而不是在 Group By 中选择列

    我一直在尝试查找一些有关如何选择 SQL 中 Group By 语句中未包含的非聚合列的信息 但到目前为止我发现的任何内容似乎都无法回答我的问题 我有一个包含我想要的三列的表格 一个是创建日期 一个是按特定声明 ID 对记录进行分组的 ID