• 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"

  • 相关阅读:
    SSL配置
    PHPStorm 打开时闪退的问题
    【网址链接】
    js中将string转换为number
    HTML特效代码大全
    前端面试题-重要
    元素框默认的计算方式
    html中有趣的显示出柠檬的方法
    html中圆角方法border-top-left-radius
    html+css显示出三角形方法transparent
  • 原文地址:https://www.cnblogs.com/poloyy/p/12871310.html
Copyright © 2020-2023  润新知