Mysql group by
使用聚合函数时,只返回一个结果, 所以要查询其他信息时,需要配合group by 函数使用
如下语句name会返回多个name中的一个,这显然是不行的 :
select name,count(*) from student_info ;
group by 的作用,就是对数据进行分组.
group by 和 聚合函数 配合使用 可以对组内数据进行处理 . 常见聚合函数: count() , sum() , avg() , min() , max()
1. 使用 group by 有一个原则,就是 select 后面的所有列中, 没有使用聚合函数的列 , 必须出现在 group by 后面(重要),如下:
select
column_A,
column_B,
SUM(column_C)
from
Orders
group by
column_A,
column_B;
2. 执行顺序 from --> where ---> group by ---> having ---> select ---> order by
where 必须在 group by 之前. where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据
having 只能在 grouo by 之后. having 是对分组结果进行筛选, 所以使用having 的前提是使用了group by.
3. where 子句中不能使用聚合函数 !!!
因为 where 子句是在分组之前 使用.
4. having 子句中可以使用聚合函数.
因为having 子句是在分组之后使用 .
钟声敲响了日落,柏油路跃过山坡,一直通向北方的是我们想象,长大后也未曾经过~