首页 > 数据库 >44. SQL--having子句

44. SQL--having子句

时间:2022-09-02 14:48:36浏览次数:44  
标签:group -- where 44 子句 net biancheng having

1. 前言

sql having 子句通常与 group by 子句一起使用,用来过滤 group by 子句返回的分组结果集。

group by 子句通常和聚合函数(count()、sum()、avg()、min()、max() 等)一起使用来对结果进行分组,而 where 子句不能和聚合函数一起使用,所以 sql 又提供了 having 子句,以弥补了 where 子句的不足。

where 子句在分组操作之前起作用,having 子句在分组操作之后起作用。

2. 语法

having 子句的基本语法如下:

select column1, column2
from table1, table2
where [ conditions ]
group by column1, column2
having [ conditions ]
order by column1, column2

和 where 子句一样,having 子句后面也跟筛选条件,只有满足条件的数据才会被返回。您可以在 condition 条件中使用 >、<、= 等比较运算符,或者使用 and、or 等逻辑运算符来指定多个条件,或者使用 like、not like 等进行模糊匹配。

另外需要注意各个语句出现的顺序:

  • where 子句对表进行第一次筛选,它紧跟 from 之后;
  • group by 子句对 where 的筛选结果进行分组,它必须位于 where 之后;
  • having 子句用来对分组的结果进行筛选,它必须位于 group by 子句之后;
  • order by 子句对最终的结果集进行排序,它位于整个 sql 语句的最后。

3. 示例

有包含如下记录的 user 表:

+----+------------+-----------------+--------------------------+-------------+-----------------+
| id | username   | password        | email                    | cellphone   | ip              |
+----+------------+-----------------+--------------------------+-------------+-----------------+
|  1 | mozhiyan   | 123456          | [email protected]       | 13112344444 | 113.96.109.117  |
|  2 | fanhua     | xyzabc          | [email protected]  | 15028882233 | 117.25.156.179  |
|  3 | greatman   | 123abc          | [email protected]     | 13290029028 | 125.64.104.35   |
|  4 | xiaogun123 | hsdjs23ZX       | [email protected]          | 19036895933 | 101.37.97.51    |
|  5 | my_code    | 19951206        | [email protected]        | 19234561234 | 103.133.176.211 |
|  6 | guxiaonuan | xy232323        | [email protected] | 13409873222 | 113.96.109.117  |
|  7 | coder      | 20200304shengri | [email protected]     | 15645990222 | 101.37.97.51    |
|  8 | happy_gril | sd@@sd          | [email protected]          | 19090903636 | 220.181.38.148  |
+----+------------+-----------------+--------------------------+-------------+-----------------+

统计同一个 IP 地址上的用户注册数,筛选出注册数大于 2 的结果集:

sql> select ip, count( username ) as total from user group by ip having total >=2;

执行结果:

+----------------+-------+
| ip             | total |
+----------------+-------+
| 101.37.97.51   |     2 |
| 113.96.109.117 |     2 |
+----------------+-------+

 

标签:group,--,where,44,子句,net,biancheng,having
From: https://www.cnblogs.com/jiajunling/p/16649788.html

相关文章

  • 证书转换
    证书转换1pem格式转jks格式证书转换命令:原因:Java无法读取pem格式的证书,Java自身的证书读取格式为keystore(JKS),所以需要将证书进行一个集成和转换步骤a)......
  • 包装类
    1、包装类数据类型以及继承关系包装类就是对基本数据类型的一个扩展。基本数据类型不可称为对象,包装类型是对象。boolean->Booleanchar->Character//以下都是nu......
  • 我的开课博文
    在通过一段时间的学习后, 我对c语言产生了新的认识。我本以为C语言的作用就如同电影中,黑客们编辑代码的表现一样,是一种特别炫酷的画面。当我们把代码写好之后,只要轻轻地点......
  • vue3+vite+postcss+vm实现屏幕自适应
    1、安装 postcss-pxtorem插件npminstallpostcss-pxtorem2、新增postcss.config.js的文件, module.exports={plugins:{"postcss-pxtorem":{......
  • G. Even-Odd XOR(构造 位运算) CF 1722G
    题目:​构造一个长度为n的序列,使奇数位上的所有数异或和等于偶数位上的所有数异或和分析:​由于奇数位异或和=偶数位异或和,所以可以得到奇数位异或和xor偶数位异或和=......
  • 11.业务功能实现---商品服务三级分类前后端联调
    1.商品服务三级分类前后端联调登录后台管理系统,添加系统管理菜单:目录(一级菜单)--商品系统、菜单(二级菜单)--分类维护、-----在侧边栏会显示新增加的菜单;编写......
  • 自适应布局 tb自适应布局
    第一种方法是将文件下载到你的项目中,然后通过相对路径添加:<scriptsrc="build/flexible_css.debug.js"></script><scriptsrc="build/flexible.debug.js"></script>第......
  • Idea配置Serializable class without ‘serialVersionUID’ 找不到
    在使用Java原生序列化的时候,serialVersionUID起到了一个类似版本号的作用,在反序列化的时候判断serialVersionUID如果不相同,会抛出InvalidClassException。关于Idea如何快......
  • 数位dp 乘法
    虽然听了正解,但是我们还是要好好考虑一下这道题。我们从高到低的考虑每一位,我们考虑前面还差多少,其实前面一位只会有\(0\)和\(-1\)。因为\(1\)我们是无法通过后面的......
  • 基于webrtc接入海康大华摄像头
    环境准备1.带有Docker的服务器一台2.海康或大华摄像头3.服务器与摄像头在同一局域网下 摄像头配置视频编码需要H.264的格式,webrtc不支持H.265webrtc-streamer安装......