解决which is not functionally dependent on columns in GROUP BY clause;...sql_mode=only_full_group_by

简介: 解决which is not functionally dependent on columns in GROUP BY clause;...sql_mode=only_full_group_by

问题产生原因:数据库设置了only_full_group_by模式

解决方案:

  • 首先select的内容必须有order bygroup by的字段
  • 使用any_value

举例:

select 
  id,name,sex
from t_person
group by create_time
order by age

需要把create_timeage,放到select的字段里,因为名字可能对应多个,所以需要加上any_value,修改后的结果如下:

select 
  id,any_value(name),sex,create_time,age
from t_person
group by create_time
order by age
目录
打赏
0
0
0
0
242
分享
相关文章
【YashanDB知识库】如何将mysql含有group by的SQL转换成崖山支持的SQL
本文探讨了在YashanDB(崖山数据库)中执行某些SQL语句时出现的报错问题,对比了MySQL的成功执行结果。问题源于SQL-92标准对非聚合列的严格限制,要求这些列必须出现在GROUP BY子句中,而SQL:1999及更高版本允许非聚合列直接出现在选择列中。YashanDB和Oracle遵循SQL-92标准,因此会报错。文章提供了两种解决方法:使用聚合函数处理非聚合列,或将GROUP BY与ORDER BY拆分为两层查询。最后总结指出,SQL-92标准更为严谨合理,建议开发者遵循此规范以避免潜在问题。
【YashanDB 知识库】如何将 mysql 含有 group by 的 SQL 转换成崖山支持的 SQL
在崖山数据库中执行某些 SQL 语句时出现报错(YAS-04316 not a single-group group function),而这些语句在 MySQL 中能成功执行。原因是崖山遵循 SQL-92 标准,不允许选择列表中包含未在 GROUP BY 子句中指定的非聚合列,而 MySQL 默认允许这种操作。解决办法包括:使用聚合函数处理非聚合列或拆分查询为两层,先进行 GROUP BY 再排序。总结来说,SQL-92 更严格,确保数据一致性,MySQL 在 5.7 及以上版本也默认遵循此标准。
高基数 GroupBy 在 SLS SQL 中的查询加速
本文详细介绍了SLS中的高基数GroupBy查询加速技术。
178 25
|
7月前
|
SQL 中的 CLAUSE 是什么?
【8月更文挑战第31天】
171 0
|
9月前
|
SQL GROUP BY 语句
SQL GROUP BY 语句
50 0
MySQL数据库——SQL优化(2/3)-order by 优化、group by 优化
MySQL数据库——SQL优化(2/3)-order by 优化、group by 优化
100 0
|
10月前
|
SQL
SQL中GROUP BY语句与HAVING语句的使用
SQL中GROUP BY语句与HAVING语句的使用
187 1
|
10月前
|
SQL,Group By 真扎心,原来是这样
SQL,Group By 真扎心,原来是这样
76 0
详解SQL语句中的GROUP BY和聚合函数COUNT、SUM、AVG、MIN和MAX。
详解SQL语句中的GROUP BY和聚合函数COUNT、SUM、AVG、MIN和MAX。
1520 0
|
10月前
|
SQL HAVING 子句详解:在 GROUP BY 中更灵活的条件筛选
HAVING子句被添加到SQL中,因为WHERE关键字不能与聚合函数一起使用。
392 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等