Mysql 分组和过滤

本文介绍了MySQL中的分组(GROUP BY)和过滤概念。GROUP BY用于将数据分成小组,执行顺序为FROM>WHERE>GROUP BY>SELECT。在SELECT列表中,只能包含GROUP BY中的字段或多行函数。HAVING子句用于过滤分组后的结果,它必须在GROUP BY之后,支持所有WHERE操作符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分组

GROUP BY 子句将表中数据分成若干小组

  • 语法格式:
  • select column,group_function(column)
    from table
    [where condition]
    [group by group_by_expression]
    [order by column]

     执行顺序:from>where>group by>select

    例如: 

    select address,SUM(stime) from t_students group by address;
    -以address为分组,查看分组stime总和

     

注意事项:

在select列表中的字段,不能是group by没有的字段,除非这些用在多行函数中。上面的例子中,只能用address字典

如果没有group by语句;

如果没有group by的子句,select列表中不允许出现字段与多行函数混用的情况;

不允许在where子句中使用多行函数;

过滤

  • 对分组过滤查询的结果进行过滤,要使用having从句;
  • having从句过滤分组后的结果,他只能出现在group by之后;
  • where过滤行,having过滤分组,having支持所有where操作符
  • 语法格式:
    select column,group_function(column)
    from table
    [where condition]
    [group by group_by_expression]
    [having group_condition]
    [order by column]

    执行顺序:from>where>group by>having>select>order by 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值