MySQL聚合函数问题

2024-06-28

在下面的例子中,为什么min()查询返回结果,但是max()查询没有?

mysql> create table t(id int, a int);
Query OK, 0 rows affected (0.10 sec)

mysql> insert into t(id, a) values(1, 1);
Query OK, 1 row affected (0.03 sec)

mysql> insert into t(id, a) values(1, 2);
Query OK, 1 row affected (0.02 sec)

mysql> select * from t
    -> ;
+------+------+
| id   | a    |
+------+------+
|    1 |    1 |
|    1 |    2 |
+------+------+
2 rows in set (0.00 sec)

mysql> select * from t where a < 4;
+------+------+
| id   | a    |
+------+------+
|    1 |    1 |
|    1 |    2 |
+------+------+
2 rows in set (0.00 sec)

mysql> select * from t where a < 4 having a = max(a);
Empty set (0.00 sec)

mysql> select * from t where a < 4 having a = min(a);
+------+------+
| id   | a    |
+------+------+
|    1 |    1 |
+------+------+
1 row in set (0.00 sec)

The HAVING子句用于过滤行组。你参考一下min(a) and max(a)其中(在没有任何GROUP BY子句)总计a表中的值,然后与单个值进行比较a value.

那么哪个aMySQL应该使用什么值?我所知道的所有其他 RDBMS 都会在此时抛出错误,但 MySQL 确实允许这样做。来自文档 http://dev.mysql.com/doc/refman/5.6/en/group-by-hidden-columns.html

标准 SQL 不允许HAVING命名任何列的子句 没有找到在GROUP BY子句,除非它包含在聚合中 功能。 MySQL 允许使用此类列来简化 计算。此扩展假设未分组的列将 具有相同的分组值。否则,结果是 不定。

因此,从您得到的结果来看,它最终使用了1作为标量值a但这种行为并不能得到保证,它同样可以使用2或任何其他现有的a value.

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

MySQL聚合函数问题 的相关文章

  • 如何在 MariaDB 或 MySQL 中创建文本类型的外键?

    我有两张桌子 CREATE TABLE first table my id TEXT 6 NOT NULL content VARCHAR 30 NOT NULL PRIMARY KEY my id 6 Engine InnoDB char
  • Mysql如何将数据库中的时间数据类型设置为仅HH:MM

    如何将我的 mysql 数据库字段 时间 数据类型设置为数据库中的 HH MM 在我的脚本中 用户仅输入 HH MM 并且数据库自动添加最后一个 SS 数字 问题是当我拉取时要编辑的值 它还添加了最后一个数字 这有点烦人 我可以用 PHP
  • MySQL 设置自动增量“Ad Hoc”

    有没有办法以 临时 方式将 mysql 的 auto increment 设置为某个整数 例如 表中已删除 N 个最新行 因此主键 auto increment 与实际行数相差 N 有没有办法将 auto increment 设置为正确的数
  • 从多个表插入表

    嘿 我有一个连接表 连接两个不相关的表 两个表都有ID的 我需要选择ID从每个表中使用WHERE具有不同的值 例如这就是我的看法 INSERT INTO c aID bID VALUES SELECT a ID WHERE a Name M
  • 编写 MySQL 查询以获得所需结果

    我正在使用 MySQL 数据库 风险因素有四种类型 严重 高 中 低 表包含如下数据 id uaid attribute value time risk factor 1 1234 Edge Exist 16123 NONE 2 1234
  • 当用户单击链接时如何在表中创建新字段

    我的表格如下图所示 In order to insert data from this form into table I coded this supplier info supplier name POST supplier name
  • 数据库中无法识别的数据类型 nvarchar

    我尝试将 MySQL 服务器数据导入 PHPMyAdmin MySQL 数据库 无法识别的数据类型 nvarchar 发现 我的数据库排序规则设置为 utf general ci 您不必担心 nvarchar 消息 它是由 phpmyadm
  • 如何修复在 AWS RDS 上锁定表名称创建 (errno: -1) 的 InnoDB 损坏?

    TIP Do not run ALTERMySQL Workbench 中用于 标准 TCP IP over SSH 连接的语句 最好是进入服务器并运行ALTER从那里 这样 如果您失去与服务器的连接 ALTER仍应完成其工作 我正在尝试在
  • SQL LIKE 实际上是如何工作的

    例如 当我有这样的字符串时 ABBBCSLAK JDK ASAAAAFJKDSKJFSDF 当我像这样使用 SQL 时 SELECT FROM table WHERE column LIKE JDK 当服务器访问 JDK 时到底会发生什么
  • 即使为空也显示值

    我正在使用以下内容显示过去 7 天内添加的产品计数 即使 COUNT 0 我是否可以以某种方式定制查询以显示过去 7 天的所有产品 查询现状 SELECT DAYNAME dateadded DAY COUNT COUNT FROM pro
  • 从条件表中获取 WHERE 子句的条件

    我创建了以下简单的DataModel 我用以下数据填充了表格 1 桌子Customer INSERT INTO test customer CustomerName Country RegistrationDate VALUES Custo
  • 如何配置 Spring boot 以使用两个数据库?

    我在用春季启动 2 X with 休眠5连接两个不同的 MySQL 数据库 Bar 和 Foo 在不同的服务器上 我试图列出一个实体的所有信息 自己的属性和 OneToMany and ManyToOne关系 来自 REST 控制器中的方法
  • MySQL + htaccess mod_rewrite?

    我正在将类似代理的短域与我的网站结合使用 短域名是 hrci me 长域名是reachchallenges infectionist com hrci me 使用 mod rewrite 并有一个规则 几乎可以从 hrci me 到reac
  • MySQL:删除包含特定参数且早于一天的行[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在使用 mysql 为我的网站创建一个登录系统 它在基于订阅的系统上运行 如果参数 premium 等于 1 DAY 如果它早于一
  • 恢复 woocommerce 订单

    最近 我的服务器团队更换了我的数据库 他们将我们以前的数据库放入其中 因此 我们丢失了某一天 特定日期 的订单详细信息 现在 服务器团队提供包含丢失当天订单详细信息的备份 现在请告诉我如何恢复这些订单 我无法用给定的备份替换我们的数据库 因
  • mysql-connector-java 升级到 8.0.11 更改了从数据库检索的所有日期值

    对于 Spring 项目 mysql connector java已迁移自6 0 6 to 8 0 11 因此与8 0 11问题如下 Caused by com mysql cj exceptions InvalidConnectionAt
  • SELECT MySQL 字段包含子字符串[重复]

    这个问题在这里已经有答案了 使用 LIKE 在 MySQL 中非常常见 我们这样使用它 WHERE field LIKE substring 我们有一个子字符串 并且字段有完整的字符串 但我需要的是相反的东西 我在字段中有子字符串 所以 我
  • 主键与主键

    创建包含数据库结构的 mysql 转储时 其中一张表显示以下内容 CREATE TABLE completedTransactions paymentId int 10 unsigned NOT NULL timestamp int 15
  • 在 MySQL 数据库中存储大文件的更好方法?

    我有一个 PHP 脚本 您可以使用它上传非常大的文件 最大 500MB 并且该文件的内容存储在 MySQL 数据库中 目前我做这样的事情 mysql query INSERT INTO table VALUES uploadedfile f
  • MySQL:ALTER IGNORE TABLE ADD UNIQUE,什么会被截断?

    我有一个包含 4 列的表 ID 类型 所有者 描述 ID 是 AUTO INCRMENT PRIMARY KEY 现在我想 ALTER IGNORE TABLE my table ADD UNIQUE type owner 当然 我几乎没有

随机推荐

  • angular2-jwt 检查组件中的令牌是否过期?

    是否可以检查 Angular 2 应用程序组件内的 id 令牌是否过期 我用该方法得到了 AuthService public isAuthenticated boolean check if id token is expired or
  • 在间隔之间插值,按照贝塞尔曲线插值

    为了实现 2D 动画 我正在寻找两个关键帧之间的插值 其变化速度由贝塞尔曲线定义 问题是贝塞尔曲线以参数形式表示 而要求是能够评估特定时间的值 为了详细说明 假设 10 和 40 的值将在 4 秒内进行插值 该值不会不断变化 而是由表示为
  • 有选择地格式化 PowerShell 管道中的数据并输出为 HTML 的技术

    假设您想要对 powershell 的某些表格输出进行一些奇特的格式化 并且目标是 html 用于网络服务器 或者通过电子邮件发送 举例来说 您希望某些数值具有不同的背景颜色 任何 我可以想到两种可靠的编程方法来实现此目的 输出 XML 并
  • 获取数据后关闭EXCEL应用程序进程

    我正在尝试通过以下方式从列表中的 Excel 文件获取列数据 private void Form1 Load object sender EventArgs e Excel Application xlApp new Excel Appli
  • 从子目录或相对路径导入包

    这是我的目录设置 mydir script1 py shared otherstuff script2 py pkg box py init py script2 py以 开始 import pkg 而且效果很好 当我在其中包含相同的行时s
  • 迭代 numpy 矩阵行

    首先 我尝试在谷歌和网站中搜索来找到我的问题的答案 我认为这是非常基本的 但没有任何结果 我试图从 numpy 矩阵中获取行 但我不能 例如 如果我使用这个 result numpy matrix 11 12 13 21 22 23 31
  • ie7-8 的 Rem 后备

    我在所有 现代 网站中使用 rem 单位 为了使其与 ie7 8 兼容 我使用了 less 函数 font size 10 输出 font size 10px font size 1rem 由于我使用 rem 来处理实际的所有内容 宽度 顶
  • 如何处理 AWS Redshift unload 命令中的带引号的值?

    假设 遵循AWS docs https docs aws amazon com redshift latest dg r UNLOAD command examples html我想使用像这样的卸载命令 unload SELECT FROM
  • 如何在命令行中列出模块并检查函数是否存在?

    像许多 Windows 用户 一样 我不想花时间学习从源代码编译任何东西 所以 Lua 对于爱好者来说似乎是一个非常好的选择 抱歉 如果这是一个非常简单的问题 但是 Q1 如何列出解释器的任何给定实例可用的模块 有些二进制发行版有许多编译为
  • 如何在matplotlib中确定屏幕尺寸

    我正在寻找一种通用方法 使用 matplotlib 和任何交互式后端 例如 TkAgg Qt4Agg 或 macosx 来获取屏幕大小 以像素为单位 我正在尝试编写一个函数 它可以在屏幕上的一组标准位置打开一个窗口 例如屏幕的右半部分或右上
  • 为什么我的团队应该采用源代码控制? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有机会向我的老板正式介绍任何对公司有利的事情 我的想法是在我的工作场所采用源代码控制 我一直在使用 Mercurial 来管理我自己的工
  • 在 Excel 中使用宏进行多选,如何取消选择选择

    我需要使用 MultiSelect 下拉列表创建启用宏的 Excelsheet 用户选择下拉列表之一 然后将值附加到以逗号 分隔的单元格中 如果用户再次选择已经选择的值 则应将其从列表中删除 我能够通过以下代码实现它的第一部分 但无法实现第
  • 如何让 Url.Action 使用正确的端口号?

    我正在使用 MVC3 创建一个网站 我使用 razor 语法来创建视图 并且所有这些都在 azure 下运行 目前我在本地的azure模拟器下运行 我在以下网址查看 http localhost 81 Blah Foo http local
  • 在 React Native ios 应用程序中无法识别 fontFamily

    我正在努力获取我的字体 按开始2P 已加载 它是来自谷歌字体的字体 已多次执行以下步骤 以确保我没有马虎 从所有迹象来看 该字体应该在 React Native 应用程序中可用 在我的项目目录的根目录下创建了资产文件夹 在资产文件夹中创建字
  • 索引数据表

    我有一个Datatable其中包含数百万数据 数据表 创建索引之前 x x DateColumn Name x x 2014 01 02 10 01 03 A 2014 01 02 11 07 23 A 2014 01 03 07 12 1
  • docker Buildx“错误:BuildKit 已启用,但 buildx 组件丢失或损坏”错误

    当我尝试像往常一样使用 Docker 进行 Docker 构建时 我在映像中收到错误消息 并且无法构建 这种情况我该怎么办 顺便说一句 Docker的版本是23 0 1 https i stack imgur com AzgNi png h
  • 使用 PyPDF2 去除 PDF 上的水印

    This Section imports the necessary classes from the PyPDF2 library from PyPDF2 import PdfFileReader PdfFileWriter from P
  • 如何在组内推送多列的值

    看来我的查询不会像我期望的那样 我想分组name并将 location1 和 location2 映射到名为的数组中locations Data name Jack localtion1 Taiwan localtion2 France n
  • Docker:PHP 上传文件到已安装数据卷时权限被拒绝

    我正在使用 docker 快速启动终端Win10 Client Version 17 06 0 ce API version 1 30 Go version go1 8 3 Git commit 02c1d87 Built Fri Jun
  • MySQL聚合函数问题

    在下面的例子中 为什么min 查询返回结果 但是max 查询没有 mysql gt create table t id int a int Query OK 0 rows affected 0 10 sec mysql gt insert