MySql教程

关于MySQL中group by的一些问题的记录

本文主要是介绍关于MySQL中group by的一些问题的记录,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

only full group by问题的解约方案

这个报错的原因是,在SQL语句中,你查询的字段应该是你分组的依据,即selectcolumn应该全部跟在group by之后。这个也和MySQL的版本有关系,MySQL5.7版本默认设置了 mysql sql_mode = only_full_group_by 属性。
-- 如何查看MySQL的版本?
show variables like 'version';
-- 查看当前的sql_mode
show variables like 'sql_mode';

1. 懒省事做法-修改sql_mode

set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

2. 使用正确的SQL语句

查询的字段需要全部作为分组的依据,但是实际情况下我们很多情况都是只根据一个字段来做分组,而且还需要对分组的数据进行某种规则的排序,来筛选出一条数据,那么可以通过如下SQL来实现:
select * from table_A a inner join (select col_1,max(col_2) col_2 from table_A group by col_1) tem on a.col_2 = tem.col_2

这篇关于关于MySQL中group by的一些问题的记录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!