为什么列必须出现在 GROUP BY 中?

2024-03-10

我有这个:

SELECT name, value,
       MIN(value) as find_min
FROM history
WHERE date_num >= 1609459200 
  AND date_num <= 1640995200 
  AND name IN('A')
GROUP BY name

尝试获取日期之间的最小值each单独主题:

name value
A.    3
B     4
C     9
A     0
C     2

我不断收到这个常见的错误:

列“history.value”必须出现在 GROUP BY 子句中或在聚合函数中使用

我读了这个必须出现在 GROUP BY 子句中或在聚合函数中使用 https://stackoverflow.com/questions/19601948/must-appear-in-the-group-by-clause-or-be-used-in-an-aggregate-function

我还是不明白:

  1. 为什么我必须将所有内容都包含在 GROUP BY 中?逻辑是什么?
  2. 为什么这不起作用?
  3. is Min() over (partition by name)更好,如果是这样,我怎样才能每次只得到一个结果name?

EDIT:

如果我尝试:GROUP BY name, find_min它也会失败,即使在这种情况下他可以产生独特的结果(都一样)


这其实很容易理解。

当你说GROUP BY name,所有行,其中name相同的内容被分组在一起形成单个结果行。现在原始表可以包含具有相同内容的两行name,但不同value。如果你添加value to the SELECT列表,其中哪些应该输出?另一方面,确定min(value)每个组都没有问题。

即使只有一个value对于整个团体(就像你的find_min),您必须将该列添加到GROUP BY.

实际上有一个例外:如果表的主键位于GROUP BY子句中,该表中的其他列不需要位于GROUP BY,因为这自动证明了不可能有不同的值。

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

为什么列必须出现在 GROUP BY 中? 的相关文章

  • 总和和不同不会改变结果?

    我是一个新手 试图在这里解决这个问题 到目前为止还没有运气 非常感谢任何帮助 Select Distinct AB agency no ab branch no AS AGENCY BRANCH count AB agency no ab
  • 如何关闭 gorm 1.20.0 中的数据库实例

    由于我没有在 Close 函数中找到 gorm 实例 任何帮助将不胜感激 dbURI fmt Sprintf user s password s dbname s port s sslmode s TimeZone s username p
  • Django 和 PostgreSQL - 值对于类型字符变化来说太长(512)

    我正在从测试 SQLite 数据库迁移到 PostgreSQL 数据库 我有一个插入到数据库中的示例对象 它在 SQLite 上工作 但在 PostgreSQL 中给我一个错误 代码片段是 car CarItem objects creat
  • MySQL NOT IN 来自同一个表中的另一列

    我想运行 mysql 查询来选择表中的所有行films其中的值title该列不存在于另一列的所有值中的任何位置 collection 这是我的表格的简化版本 其中包含内容 mysql gt select from films id titl
  • 如何确定层级组织中的权限?

    我正在尝试创建高性能逻辑来确定分层组织内的权限 员工被分配到一个或多个单位 单元是分层的 理论上 无限深度 实际上不超过 6 层 例如 员工Jane可能是Supervisor of the Accounts Receivable单元 的子单
  • 随着时间的推移累积(不重叠)——技术?

    我正在尝试找到一种更好的方法来制作水晶报告 其他人的 按组添加不重叠的时间 这显然是一个古老的问题 有没有一种技术可以得到 调整每条记录的 开始 结束 时间 以消除共同 重叠时间 亚组内 使用直接 SQL 尽管我发现我可以执行 CTE 假设
  • 如何将所有父母的父母作为循环引用表中子对象的列?

    我有一个表格 其中有类似的列 entityID entityName parentID 我如何编写一个查询来返回实体的所有父级级别 以返回类似的内容 childentityname parentlevel1name parentlevel2
  • PostgreSQL函数中sql语言和plpgsql语言的区别

    我很新数据库开发所以我对下面的例子有一些疑问 函数 f1 语言 SQL create or replace function f1 istr varchar returns text as select hello varchar istr
  • 如何在 SQL Server 2012 中选择除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以选择所有列 但只选择我不想选择的特定列 我的意思是有时我会遇到这样的问题 表有数百个字段 而我只需要删除一个字段 我需要重写所有列吗 有什么窍门吗 喜欢select
  • Mac 上用户“postgres”的密码身份验证失败

    我在创建新的 psql 用户时遇到问题 因为我无法以 postgres 身份登录 psql 我已尝试过 1 sudo u postgres psql 2 sudo u postgres createuser img site P s e 他
  • Oracle REGEXP_INSTR() 和“a-z”字符范围与预期不匹配

    我想用REGEXP INSTR 在 oracle 数据库中检查小写 大写字符 我知道 upper and lower POSIX 字符类 但我选择了a z这给了我非常奇怪的结果 我不明白 有人可以解释一下吗 SELECT REGEXP IN
  • 为什么 ISNUMERIC('.') 返回 1?

    最近我在 SQL Server 中使用 ISNUMERIC 时遇到了一个问题 导致找到了这段代码 SELECT ISNUMERIC 这会返回 1 如 true 所示 难道不应该像 false 一样返回 0 吗 See Numeric 损坏了
  • 将用户定义的表类型从 VBA 传递到 SQL

    我的任务是创建一个 Excel 电子表格作为 SQL 数据库的前端 以及一些对数据执行复杂计算的 C 我的老板想要前端作为电子表格 而计算对于 VBA 来说似乎太复杂了 目前 检索数据集的存储过程运行良好 然后 用户将在 Excel 中编辑
  • 一张表中按最大日期过滤重复行的 SQL 查询

    我有一个 SQL 数据库 persons 它具有基于 IDNum 列的重复条目 我需要查询条目并仅根据最新创建日期显示行或重复条目 这是查询 SELECT IDNum PersonPGUID CreatedDateTime FirstNam
  • 如何避免连接两个表时重复

    Student Table SID Name 1 A 2 B 3 C Marks Table id mark subject 1 50 physics 2 40 biology 1 50 chemistry 3 30 mathematics
  • 合并并添加两个表中的值

    是否可以制作一个在两个表中添加值的查询 例如 假设您有两张表 id value a 1 c 2 d 3 f 4 g 5 and id value a 1 b 2 c 3 d 4 e 5 然后 当您 添加 两个表时 您将获得 id 匹配的结果
  • 使用所有连接的 Flask unittest 和 sqlalchemy

    在进行了大约 100 个单元测试后 我刚刚在 Flask 应用程序上运行单元测试时遇到了问题 所有单元测试都会通过 但是当一次全部运行时 它们将失败并出现以下错误 OperationalError OperationalError FATA
  • 如何在审计触发器中使用system_user但仍使用连接池?

    我想做以下两件事 在我的数据库表上使用审计触发器来识别哪个用户更新了什么 使用连接池来提高性能 对于 1 我在数据库触发器中使用 system user 来识别进行更改的用户 但这阻止我执行需要通用连接字符串的 2 有没有一种方法可以让我充
  • 作为 UDF 结果的列上的 Where 子句

    我有一个用户定义的函数 例如myUDF a b 返回一个整数 我试图确保该函数仅被调用一次 并且其结果可以用作WHERE clause SELECT col1 col2 col3 myUDF col1 col2 AS X From myTa
  • 根据最大值连接表

    这是我正在谈论的内容的一个简化示例 Table students exam results id name id student id score date 1 Jim 1 1 73 8 1 09 2 Joe 2 1 67 9 2 09 3

随机推荐

  • NAudio 算法播放正弦波,其频率可以实时平滑地改变[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 到目前为止 我已经实现了在此找到的算法博客文章 http mark dot net blogspot com 2009
  • 如何阻止 MS Access 更改我的 SQL 代码?

    我在 MS Access 中编写了一个 SQL 查询 但 Access 把它搞得一团糟 只是为了 图形化 地显示它 我该如何阻止它这样做 如果将 SQL 保存为 QueryDef 对象 即使用图形查询编辑器 则无法阻止 Access 更改
  • 通过 JSON 将数据从 android 发送到服务器

    我有 MySQL 数据库服务器 我需要通过 JSON 更新 MySQL 服务器和从 MySQL 服务器检索数据 所以 我想知道如何做到这一点 并且我对这个示例语句感到非常困惑 HttpPost httppost new HttpPost h
  • 如何在Android模拟器上使用Xposed框架

    我正在尝试使用 API 17 但无法打开Xpose框架 http forum xda developers com showthread php t 1574401 确切的步骤是 启动模拟器 分区大小为 1024 adb install X
  • 对阶乘和多项式的组合进行数值计算

    我正在尝试编写一个简短的 C 例程来计算给定整数 j gt i 通常它们位于 0 到 100 之间 和复数 z 以 z 关联拉盖尔多项式 问题是我希望这个函数可以从 CUDA 内核中调用 即使用 device 属性 因此 标准库 Boost
  • Dart:异步抽象方法

    我正在尝试设计一个接口来抽象不应直接从 UI 使用的长时间运行的操作 为了抽象它 我创建了一个抽象类 其中包含执行此类操作的唯一方法 abstract class MakeSomething Result make Param param
  • 如何出现“创建目标表后架构已更改”错误?

    当我的 Web 应用程序尝试在 MSSQL 2005 数据库上执行 SELECT INTO 时 我遇到了此错误 我确实有两个问题 这个错误是什么意思以及这是如何发生的 有没有办法通过以不同的方式编码来防止这些错误 除了明显的情况之外 有人在
  • 适用于 Windows 的优秀开源错误跟踪/问题跟踪软件 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Android 未使用/查找我的希伯来语本地化。

    我正在努力将我的应用程序本地化为多种语言 西班牙语运行良好 但希伯来语没有出现 让我困惑的是 如果我将希伯来语字符串文件夹的内容放在西班牙语文件夹 values es 中 它会很好用 我的希伯来语文件夹中的西班牙语 值 他 不起作用 任何想
  • SQL Case 语句在 where 子句中指定条件?

    我有以下查询 SELECT FROM dbo tblOrders o WHERE o OrderId IN SELECT Value FROM dbo udf GenerateVarcharTableFromStringList Order
  • 相当于 git 的“svn checkout”?

    我应该使用什么 git 命令来相当于svn checkout git checkout 非常感谢 git clone https www kernel org pub software scm git docs git clone html
  • ftp 在 java 中无法正确下载文件?

    当我使用以下代码下载文件时 它只是将文件写入本地目的地 但文件大小均为零 有人能说为什么会发生这种情况以及如何解决它吗 import org apache commons net ftp FTPClient import org apach
  • BIOS 是否将 512 字节引导加载程序复制到 0x7c00

    我正在编写内核 在写这么复杂的东西之前 我认为对内核 引导加载程序 寄存器 BIOS 等进行一些理论阅读不仅会有所帮助 而且是必要的 本文 http lennartb home xs4all nl bootloaders node3 htm
  • 如何在 iTextSharp 中调整字体大小以填充固定高度的表格单元格

    我正在从 iTextSharp 创建 PDF 进行打印 我有可变长度的文本 我希望始终采用最大字体大小来填充固定高度的表格单元格 而不会在视线之外环绕 如何才能做到这一点 您首先需要能够测量所选字体中文本的宽度 来自 iTextSharp
  • 是否可以在经典asp中进行友好的url(url重写)?

    我知道如何在 asp net 中创建 实现友好的 url 但是是否可以 如果可以的话 如何 在经典 asp 中执行此操作 如果不可能 谷歌将如何响应 SEO 创建其唯一目的是重定向 加载时 到不同页面的页面 thanks Use a URL
  • 将 JSON 对象转换为 JSON 树

    var obj id 1 child 2 4 data hello id 2 child 3 data I m second id 3 child data I m third id 4 child 6 data I m fourth id
  • 如何在 PHP 中打印或回显数组索引

    我正在努力完成我的任务 这是现在要做的最后一件事 我知道如果我想打印整个数组我可以使用foreach以及许多不同的方法来打印整个数组 foreach v as k gt variable name echo p This is index
  • 使用 datetime.strptime 创建日期时间对象列表

    我有一个字符串列表 date str 2012 11 04 1 05 21 2013 11 03 1 05 21 2014 11 02 1 07 31 我想将它们作为日期时间对象来读取 对于一根弦 我做 datetime strptime
  • 运行 ssh 并立即执行命令[重复]

    这个问题在这里已经有答案了 我试图找到 UNIX 或 bash 命令来在连接到 ssh 服务器后运行命令 例如 ssh name ip tmux list sessions 上面的代码有效 它列出了会话 但随后立即断开连接 将它放在服务器端
  • 为什么列必须出现在 GROUP BY 中?

    我有这个 SELECT name value MIN value as find min FROM history WHERE date num gt 1609459200 AND date num lt 1640995200 AND na