当前位置: 首页 > article >正文

MySQL SyntaxErrorException SELECT list is not in GROUP BY 报错解决

目录

    • 一、错误原因
    • 二、解决方法
      • 1. 修改 SQL 查询
      • 2. 修改 MySQL 配置
        • 查看当前的 `sql_mode`
        • 修改 `sql_mode`
      • 3. 使用聚合函数
    • 三、总结

在使用 MySQL 进行数据查询时,我们经常会遇到各种各样的错误。其中, MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated 是一个比较常见的错误。这个错误通常发生在使用 GROUP BY 子句时,SELECT 列表中的某些列没有包含在 GROUP BY 子句中,且这些列没有使用聚合函数。本文将详细介绍这个错误的原因以及解决方法。

一、错误原因

这个错误的根本原因是 MySQL 的 sql_mode 配置中包含了 ONLY_FULL_GROUP_BY。在 ONLY_FULL_GROUP_BY 模式下,MySQL 要求 SELECT 列表中的所有列要么包含在 GROUP BY 子句中,要么使用聚合函数。如果 SELECT 列表中的列既没有包含在 GROUP BY 子句中,也没有使用聚合函数,就会抛出这个错误。

例如,以下 SQL 查询会抛出这个错误:

SELECT 日期, 地域, 活跃度, COUNT(qq号) as qq个数
FROM (
    SELECT a.`日期`, a.`qq号`, a.`地域`, IF(b.msg >= 200, '高活跃度', '低活跃度') AS 活跃度
   

http://www.kler.cn/a/573060.html

相关文章:

  • 如何在Android中实现服务(Service)
  • 使用 CMake 构建 Qt 动态库模块
  • Tick数据20241224
  • 人机交互革命:从触屏到脑波的13维战争
  • grpc工具使用
  • 剑指 Offer II 060. 出现频率最高的 k 个数字
  • 基于RKNN的嵌入式深度学习开发(2)
  • 第3章 nmap网络映射器(网络安全防御实战--蓝军武器库)
  • 大语言模型中温度参数(Temperature)的核心原理
  • 汽车免拆诊断案例 | 2023款丰田雷凌汽油版车行驶中偶尔出现通信故障
  • PHP之字符串拼接
  • NLP如何训练AI模型以理解知识
  • 【Hudi-SQL DDL创建表语法】
  • 01_NLP基础之文本处理的基本方法
  • 【Kubernets】K8S内部nginx访问Service资源原理说明
  • 【C语言】宏定义中X-Micro的使用
  • MySQL 数据库连接池爆满问题排查与解决
  • STM32---FreeRTOS临界段与任务调度器
  • 华为od机试-缓存需要最少金币数 /静态扫描(java)
  • 【C++设计模式】第四篇:建造者模式(Builder)