HAVING 不带 GROUP BY

2023-11-24

  1. 根据标准(!)SQL,以下可能吗?
  2. 为了符合标准(如果还没有),需要进行哪些最小的更改?
  3. 它在 MySQL 中按预期工作,当且仅当第一行具有最大值页数.
SELECT *
FROM Book
HAVING NumberOfPages = MAX(NumberOfPages)

标准中写道:

HAVING <search condition>

  • 令G 为由 中包含的 引用的每一列组成的集合。
  • 中直接包含的每个列引用应为以下之一:
  1. 对功能上依赖于 G 的列的明确引用。
  2. 外部参考。

source

有人能给我解释一下为什么吗应该有可能根据标准?

在 MySQL 中,它完美地工作。


尽管模仿者验证器结果,我不相信你的标准 SQL 是有效的。

A HAVING没有a的子句GROUP BY子句是标准 SQL 中有效且(可以说)有用的语法。因为它一次性对表表达式作为一个集合进行操作,所以可以说,只有使用聚合函数才真正有意义。在你的例子中:

Book HAVING NumberOfPages = MAX(NumberOfPages)

无效,因为在考虑整个表时,哪一行确实NumberOfPages参考?同样,只有在SELECT clause.

考虑这个例子,它是有效的标准 SQL:

 SELECT 'T' AS result
   FROM Book
 HAVING MIN(NumberOfPages) < MAX(NumberOfPages);

尽管没有DISTINCT关键字,查询将永远不会返回多于一行。如果HAVING子句满足,则结果将是包含值“T”的单行和单列(表示我们有不同页数的书籍),否则结果将是空集,即零行和单列。

我认为 mySQL 中查询不出错的原因是由于专有扩展导致HAVING子句(逻辑上)在以下之后出现SELECT子句(标准行为是相反的),加上隐式的GROUP BY其他答案中提到的条款。

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

HAVING 不带 GROUP BY 的相关文章

  • 需要按天分割日期时间范围

    我有一个需要根据日期时间拆分的表 输入表 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 所需
  • 加密数据库字段的好方法?

    我被要求加密数据库中的各种数据库字段 问题是这些字段在读取后需要解密 我在用着Django and SQL Server 2005 有什么好主意吗 See 在 SQL Server 2005 数据库中使用对称加密 https web arc
  • 检查两个“select”是否相等

    有没有办法检查两个 非平凡的 选择是否等效 最初我希望两个选择之间有形式上的等价 但是答案在证明 sql 查询等价性 https stackoverflow com questions 56895 proving sql query equ
  • sql查询获取从一月到当月的所有数据,即使没有记录

    我不擅长 sql 所以任何帮助世界都很棒 我有一个 SQL 查询 可以获取从一月到当月注册的记录 我的代码示例 SELECT DatePart YEAR p createStamp as TheYear DatePart MONTH p c
  • Reporting Services 在哪里存储其日志文件

    最相关的谷歌结果似乎表明 为了访问日志 我们必须将您自己的日志表部署到数据库并制作报告服务写入它 http technet microsoft com en us library ms157403 aspx 简而言之 Reporting S
  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • 数据库字段中的逗号分隔值

    我有一个产品表 该表中的每一行对应一个产品 并由唯一的 ID 标识 现在 每个产品都可以有多个与该产品关联的 代码 例如 Id Code 0001 IN ON ME OH 0002 ON VI AC ZO 0003 QA PS OO ME
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam
  • 如何从 SQL Server 2008 查询结果中删除“NULL”

    我有一个包含 59 列和超过 17K 行的表 很多行都有NULL在某些列中 我想删除NULL以便查询返回空白 而不是NULL 我可以运行一些更新功能来替换所有NULL with 使用 SQL Server 2008R2 Management
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 使用加权行概率从 PostgreSQL 表中选择随机行

    输入示例 SELECT FROM test id percent 1 50 2 35 3 15 3 rows 你会如何编写这样的查询 平均 50 的时间我可以获得 id 1 的行 35 的时间 id 2 的行 15 的时间 id 3 的行
  • SELECT NULL、*、NULL、NULL 中令人困惑的 SQL 错误

    的背景我试图解决第四个现实任务 https www hackthissite org playlevel 4 在 hackthissite org 中 无法确切地弄清楚我应该在 URL 中注入什么 SQL 来检索电子邮件列表 浪费了几个小时
  • 如何在 MySQL 查询本身中检索 JSON 数组中存储的值?

    我有下表 product id product name image path misc 1 flex http firstpl course level id 19 group id 40067 2 Android http firstp
  • 基于多个表的数据更新单个表 SQL Server 2005,2008

    我需要更新表one使用表中的数据two 表一和表二没有任何公共列相关 桌子three与表相关two 例如 表一 reg det 表 reg det id reg id results 101 11 344 表二 临时表 venue resu
  • JDBC 和多线程

    我正在尝试使用多线程方法运行一些查询 但是我认为我做错了什么 因为我的程序需要大约五分钟来运行一个简单的选择语句 例如 SELECT FROM TABLE WHERE ID 123 我的实现如下 我使用一个连接对象 在我的运行方法中 pub
  • 使用默认路径中的文件创建数据库

    我想创建一个创建数据库的 SQL 脚本 现在 我有这个 CREATE DATABASE Documents ON PRIMARY NAME N Documents FILENAME N Documents mdf LOG ON NAME N
  • 如何获取日期时间字段的 UTC?

    我正在使用 MySQL 5 并且正在尝试将日期时间字段转换为 UTC TIMESTAMP 这是我所拥有的 但它不起作用 并且不确定我是否可以做到这一点 但有人可以告诉我我做错了什么吗 谢谢 我已经尝试过这个 SELECT UTC TIMES
  • Oracle SQL 分析查询 - 类似递归电子表格的运行总计

    我有以下数据 由A值 排序依据MM 月 The B列计算为GREATEST current value of A previous value of B 0 以类似电子表格的方式 我怎样才能计算B使用 SQL 查询 我尝试使用分析函数 但未
  • 可空数据类型与非空 varchar 数据类型 - 哪个查询速度更快?

    我们通常更愿意拥有我们所有的varchar nvarchar列不可为空使用空字符串 作为默认值 团队中有人建议nullable更好 因为 像这样的查询 Select From MyTable Where MyColumn IS NOT NU

随机推荐

  • 在 OS X 上设置区域设置会导致崩溃

    以下代码在 Linux 上运行良好 但在 OS X 10 7 上引发异常 include
  • 如何启动所有安卓厂商的电源管理器以启用后台和推送通知?

    由于制造商进行了自定义 Android 调整 某些 Android 设备在电源管理方面存在一些政治因素 从而破坏了推送通知等某些功能 华为 仅限 EMUI 5 0 Android 7 之前版本 前往 设置 gt 受保护的应用程序 检查您的应
  • bash/Makefile 中的双美元符号是什么意思?

    当在 Makefile 中插入 shell 脚本时 我们 使用双美元符号 来引用变量 为什么会这样 for number in 1 2 3 4 do echo number done As per gnu make 官方文档 配方中的变量和
  • 错误消息“错误:程序中存在杂散‘\302’”

    我在用着代码 块 on Ubuntu 10 10 特立独行的猫鼬 我已连接 Mac 键盘并将键盘设置设置为 瑞士德语 Mac 现在 每当我写一个等号 后跟一个空格 例如宽度 100 时 我都会收到错误消息 程序中出现杂散 302 我知道这个
  • MessageDlg 显示信息图标而不是确认

    在 Win 7 上 MessageDlg 显示信息图标而不是确认图标 问号 这是代码 MessageDlg Are you sure you want to delete this file CRLF FileName mtConfirma
  • 同时使用 JSR-303 和传统 Bean 验证?

    是否可以同时使用JSR 303 bean 验证 and 传统验证 该类型的单个验证器类 在 Spring 中 如果是这样 需要什么配置来设置它 我已经尝试过上面的说明参考 InitBinder protected void initBind
  • jsSHA、CryptoJS 和 OpenSSL 库给出不同的结果

    作为 JS 新手 我也在学习使用加密库 我不明白为什么使用相同的秘密对相同的消息进行签名 编码会产生不同的结果 我在用着jsSHA 1 3 1 在这里找到 and 这里描述了 CryptoJS 3 0 2尝试创建 Base64 sha 1
  • 如何检测 read.csv 的正确编码?

    我有这个文件 http b7hq6v alterupload com en 我想用 R 来读取它read csv 但我无法检测到正确的编码 好像是UTF 8的一种 我在 WindowsXP 计算机上使用 R 2 12 1 有帮助吗 首先基于
  • 全局变量 - 数据库连接?

    我试图连接到数据库 MySQLi 一次 但这样做时遇到问题 如何为整个脚本建立全局连接 有多个文件 index php classes config class php classes admin class php 等 我尝试过以下方法
  • 如何从 Android 应用程序发推文?

    我正在开发一个 Android 应用程序 并且希望具有在我的 Twitter 帐户 TWEET 上发送消息的功能 哪些 API 可用于此目的 代码示例将不胜感激 如果您只需要发送推文 这可以帮助您 String tweetUrl https
  • 任何 concurrent.futures 超时确实有效吗?

    尝试以便宜的方式编写基于进程的超时 同步 如下所示 from concurrent futures import ProcessPoolExecutor def call with timeout func args timeout 3 w
  • 如何使用 Google Drive API 一次删除多个文件

    我正在开发一个 python 脚本 它将文件上传到我的驱动器中的特定文件夹 我注意到 驱动器 api 为此提供了一个很好的实现 但我确实遇到了一个问题 如何一次删除多个文件 我尝试从驱动器中获取我想要的文件并组织它们的 ID 但没有运气 下
  • 当我有很多记录时,Postgres 函数返回一条记录?

    我有很多记录 我的简单查询返回 但当我使用函数时 它只给我第一条记录 首先我使用以下方法创建自己的数据类型 CREATE TYPE my type usr id integer name varchar 30 我的功能是 CREATE OR
  • PowerMockito:使用匹配器模拟静态方法时出现 InvalidUseOfMatchersException

    当我测试这个静态方法时 public class SomeClass public static long someMethod Map map String string Long l Log log with import org ap
  • 将文件保存到选定的目录中(javascript)

    你好 我的问题是关于javascript的 我想要1 要求用户选择一个目录2 然后将我的一堆文件写入其中 可能通过创建子目录 而不与用户交互 我怎样才能做到这一点 我可以吗 我是 javascript 新手 希望得到您的帮助 PS 我听说过
  • 如何使用 Jest 模拟封装在服务类中的 Winston 记录器实例

    我想嘲笑温斯顿记录器封装在使用 NestJS 创建的服务类中的实例 我在下面包含了我的代码 我无法从服务类中触发模拟的记录器实例 谁能解释我哪里出了问题 import as winston from winston import logge
  • Python 翻译多个字符

    我正在尝试在 python 3 3 3 中创建一个程序 它将接受一个字符串 然后将其转换为数字 1 26 我知道如何计算一位数字 但不知道如何计算 2 位数字 translist str maketrans 123456789 ABCDEF
  • 对 WooCommerce 中最便宜的购物车商品应用 100% 优惠券折扣

    我创建了一个 BOGOF 买一送一 优惠券 使用正常的 woocommerce 优惠券方法 该优惠券为用户提供购物车中其他 1 件商品 100 的折扣 优惠券设置 General 折扣类型 百分比折扣优惠券 amount 100 使用限制
  • 使用 Django 模型进行单元测试并涉及很多关系

    或者 如何设计数据库架构以方便进行单元测试 顺便说一句 这里有一个与此非常相似的问题 如何使用外键测试 Django 中的模型 我正在尝试为使用 Django 框架的项目遵循 TDD 方法 我正在创建和测试模型及其功能 保存方法 信号 以及
  • HAVING 不带 GROUP BY

    根据标准 SQL 以下可能吗 为了符合标准 如果还没有 需要进行哪些最小的更改 它在 MySQL 中按预期工作 当且仅当第一行具有最大值页数 SELECT FROM Book HAVING NumberOfPages MAX NumberO