Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > 数据库GROUP BY语句详解

数据库中GROUP BY语句详解、示例、注意事项

作者:CodeCharm——CC

在Oracle数据库中GROUP BY是用于对结果集进行分组的一个关键字,这篇文章主要给大家介绍了关于数据库中GROUP BY语句详解、示例、注意事项的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、基本介绍

GROUP BY 语句在 SQL 中用于将来自数据库表的记录分组,以便可以对每个组执行聚合函数(如 COUNT()MAX()MIN()SUM()AVG() 等)。使用 GROUP BY 时,数据库会根据一个或多个列的值将结果集分为多个分组,在每个分组内可以独立地使用聚合函数。GROUP BY 通常与 SELECT 语句一起使用,以汇总每个分组的数据。

二、基本语法

SELECT column_name(s), AGGREGATE_FUNCTION(column_name)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);

这个 SQL 模板展示了一个结构化查询语言(SQL)的基本结构,用于从数据库中选择、汇总、分组和排序数据。下面逐步解释每个部分的功能和作用:

三、关键点

四、示例

五、注意事项

附:mysql group by 和 having 使用注意事项

 如果一条sql使用了 group by 那么 select  后面可以显示的字段可以有

          1 group by 的字段(多个)

          2 聚合函数, 函数体中字段任意,只要是表中的字段就行,不需要非得是group by 后面的字段

如果需要对分组后的每一组数据做细化的筛选,那么可以在group by 后面接having() 函数,having函数体多为聚合函数 。

特别需要注意的是,group by 分组后,只能显示合法数据,一般都是每一组中的其中一条,违反这个规则, 一定会报语法错误。

举例如下:

现在要查询同一个 task_code下的最大的event_id数据,sql如下

select task_code,max(event_id) from ad_task_event GROUP BY task_code

要查询同一个 task_code下的最大的event_id,并且要event_id>12的数据,只是having() 就要出场了

select task_code,max(event_id) from ad_task_event GROUP BY task_code having(max(event_id)>12)

到此这篇关于数据库中GROUP BY语句详解、示例、注意事项的文章就介绍到这了,更多相关数据库GROUP BY语句详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文