今天记录一个弱智问题,一直没发现这个问题。

答: 看情况

1、当聚集函数和非聚集函数出现在一起时,需要将非聚集函数进行group by
2、当只做聚集函数查询时候,就不需要进行分组了。

举例来说,
SELECT SUM(TABLE.A )  FROM  TABLE

上述SQL不需要使用Group by 进行分组,因为其中没有非聚合字段,所以不用Group by 也可以。

如果是SELECT SUM(TABLE.A ),MAX(B), FROM  TABLE GROUP BY B

由于B是非聚合字段,则需要使用MAX()或者其他聚合函数并且Group by 才可以正常执行。

如果不考虑having的话, group by几乎总是要跟聚集函数一起使用的,单独使用 group by其实没多大意义。 对查询结果进行分组的目的是为了细化聚集函数的作用对象。如果未对查询结果进行分组,那么聚集函数就... 文章目录My SQL —— 聚合函数 group by分组的使用1、 聚合函数 介绍2、 GROUP BY 分组3、常见的 聚合函数 4、 SQL 执行顺序 My SQL —— 聚合函数 group by分组的使用 1、 聚合函数 介绍 SQL 聚合函数 计算一组数据的集合并返回单个值。 除 COUNT 以外, 聚合函数 忽略空值,如果COUNT函数的应用对象是一个确定列名,并且该列存在空值,此时COUNT仍会忽略空值。 因为 聚合函数 对一组值进行操作,所以它通常与SELECT语句的 GROUP BY子句一起使用,以计算为每个分组提供信息的度量。 aa.apply_time, aa.product_cid, count(case when aa.r_state='审核 ' then apply_id end )审核 订单数, count(case when aa.r_state LIKE '拒绝' then apply_id end )拒绝订单数 from view_test_sys... 1.1 定义 group _by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组。 如果不在 group by 后的分组 使用 聚合函数 ,一般只会返回各个分组 的第一条数据,而且各分组内的数据是默认按照asc升序排列。 如果 group by 和having后面接了order by,则这个order by 不会在得到分组的结果前,对分组内的数据进行排序,而是在组与组间的数据进行排序, 有人会问什么需要在 group by得出最终结果前,对分组做一次排序呢,这是由上一个讲 相信小伙伴写 sql 语句时,如果 用到 group by分组后,那么其他未分组的 字段 一定 会用 聚合函数 ,不然的话 sql 就会报错,下面就来看下为什么要这么使用 一、 聚合函数 是什么? 聚合函数 :对一组值执行计算并返回单一的值。除 COUNT 以外, 聚合函数 忽略空值,如果COUNT函数的应用对象是一个确定列名,并且该列存在空值,此时COUNT仍会忽略空值。 意思就是说,使用 聚合函数 时,给它传入多个值,而它把这些值通过计算给你返回唯一的一个。 二、为什么使用了 group by后用需要用 聚合函数 因为 group b A. SQL Server Group By语句 Group By 从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。以下是 GROUP BY 子句的语法: 在此查询语法 GROUP BY 子句为列 的每个值组合生成一个组。请考虑以下示例: 在查询 添加一个 GROUP BY 子句来查看效果: B. GROUP BY子句和 聚合函数 GROUP BY 子句通常与 聚合函数 一起用于统计数据。 聚合函数 对组执行 展开全部 SQL 只要用62616964757a686964616fe58685e5aeb931333431373266到 聚合函数 就不 一定 用到 group by。 聚合函数 是对一组值执行计算,并返回单个值,也被称为组函数。 聚合函数 可以应用于SELECT 查询语句的 GROUP BY 子句的HAVING子句 ,但不可用于WHERE语句 ,因为WHERE是对逐条的行记录进行筛选。扩展资料:Transac... 因为聚集函数也叫列函数,它们都是基于整列数据进行计算的,而where子句则是对整行数据进行过滤的。而where只能是普通函数,一般情况下,有having可以不写where,把where的筛选放在having里, SQL 语句看上去更丝滑。我们之前看到了普通的筛选条件是不影响的,但是having还支持 聚合函数 ,这是where无法实现的。where的过滤是最终的,它的移除是不可挽回的,利用where过滤掉的行便不再参与 group by 的分组和having的分组过滤。先把不满足where条件的数据删除,再去分组。