• Mysql常用sql语句(13)- having 过滤分组结果集


    测试必备的Mysql常用sql语句系列

    https://www.cnblogs.com/poloyy/category/1683347.html

    前言

    • having关键字对group by分组后的数据进行过滤
    • having支持where的所有操作符和语法

    where 和 having 的一些差异性

    where having
    不可以使用聚合函数 可以使用聚合函数
    数据 group by 过滤 数据 group by 过滤
    查询条件中不可以使用字段别名 查询条件中可以使用字段别名
    用于过滤数据行 用于过滤分组后的结果集 
    根据数据表的字段直接过滤 根据已查询出的字段进行过滤 

    having 的语法格式

    HAVING <查询条件>

    确认测试表里有什么数据,方便后面的栗子做对比

    having 单独使用的栗子

    根据age分组,将分组后的结果过滤出departmen为seewo的分组记录

    select *,GROUP_CONCAT(username) from yyTest group by age having department = "seewo";

    having + where 的栗子

    1. 先查询sex = 1的所有记录
    2. 将查询的记录按照department分组
    3. 然后过滤出department=seewo的分组
    select *,GROUP_CONCAT(username) from yyTest where sex = "1" group by department having department = "seewo"

    having + where + 聚合函数的栗子

    1. sex = 1的所有记录
    2. 将查询的记录按照department分组
    3. 然后过滤出max(date) > "2020-05-08"的分组
    select *,GROUP_CONCAT(date) from yyTest where sex = "1" group by department having max(date) > "2020-05-08"

  • 相关阅读:
    关于*和&的数组操作运算对比(一维数组)
    GCC内联汇编
    输出10进制、16进制
    异常退出时的出栈
    字典
    List简单增删改查
    数组的增删改查
    Excel的简单导入导出
    文件流
    Lambda 的简单入门
  • 原文地址:https://www.cnblogs.com/poloyy/p/12871310.html
Copyright © 2020-2023  润新知