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

1)HAVING不能单独出现,只能出现在GROUP BY子句之中;WHERE即可以和SELECT等其他子句搭配使用,也可以和GROUP BY子句搭配使用,WHERE的优先级要高于聚合函数高于HAVING。

2)因为WHERE在聚集函数之前筛选数据,HAVING在计算之后筛选分组,因此WHERE的查询速度要比HAVING的查询速度快。

SQL中只要用到聚合函数就不一定要用到group by。聚合函数是对一组值执行计算,并返回单个值,也被称为组函数。 聚合函数可以应用于SELECT 查询语句的 GROUP BY 子句的HAVING子句中,但聚合函数不可用于WHERE语句中,因为WHERE是对逐条的行记录进行筛选。

mysql 聚合取非空字段 sql非聚合函数_聚合函数


mysql 聚合取非空字段 sql非聚合函数_mysql 聚合取非空字段_02


mysql 聚合取非空字段 sql非聚合函数_database_03


mysql 聚合取非空字段 sql非聚合函数_mysql 聚合取非空字段_04


mysql 聚合取非空字段 sql非聚合函数_database_05


mysql 聚合取非空字段 sql非聚合函数_数据库_06


mysql 聚合取非空字段 sql非聚合函数_数据库_07


mysql 聚合取非空字段 sql非聚合函数_数据_08


mysql 聚合取非空字段 sql非聚合函数_mysql 聚合取非空字段_09


mysql 聚合取非空字段 sql非聚合函数_数据库_10


mysql 聚合取非空字段 sql非聚合函数_数据_11


mysql 聚合取非空字段 sql非聚合函数_database_12


mysql 聚合取非空字段 sql非聚合函数_数据库_13


1.group by的列越多,查出来的数据越多。
2.只有一个列,也可以group by。

mysql 聚合取非空字段 sql非聚合函数_数据_14


mysql 聚合取非空字段 sql非聚合函数_mysql 聚合取非空字段_15


mysql 聚合取非空字段 sql非聚合函数_数据_16


mysql 聚合取非空字段 sql非聚合函数_mysql 聚合取非空字段_17


如果把集合函数的列也加入group by的话。。。。

mysql 聚合取非空字段 sql非聚合函数_聚合函数_18


mysql 聚合取非空字段 sql非聚合函数_数据库_19

mysql 聚合取非空字段 sql非聚合函数_聚合函数_20


mysql 聚合取非空字段 sql非聚合函数_mysql 聚合取非空字段_21


mysql 聚合取非空字段 sql非聚合函数_数据_22


mysql 聚合取非空字段 sql非聚合函数_mysql 聚合取非空字段_23


mysql 聚合取非空字段 sql非聚合函数_mysql 聚合取非空字段_24


mysql 聚合取非空字段 sql非聚合函数_mysql 聚合取非空字段_25


mysql 聚合取非空字段 sql非聚合函数_数据_26


mysql 聚合取非空字段 sql非聚合函数_数据_27


mysql 聚合取非空字段 sql非聚合函数_数据库_28


mysql 聚合取非空字段 sql非聚合函数_聚合函数_29


mysql 聚合取非空字段 sql非聚合函数_database_30


mysql 聚合取非空字段 sql非聚合函数_数据库_31


mysql 聚合取非空字段 sql非聚合函数_数据库_32

mysql 聚合取非空字段 sql非聚合函数_聚合函数_33


mysql 聚合取非空字段 sql非聚合函数_数据库_34


mysql 聚合取非空字段 sql非聚合函数_mysql 聚合取非空字段_35

mysql 聚合取非空字段 sql非聚合函数_聚合函数_36