SQL Having的用法
类别:数据库 浏览量:10269
时间:2013-8-26 SQL Having的用法
SQL Having的用法 一、HAVING 子句在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
二、SQL HAVING 语法
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value
三、SQL HAVING 实例
我们拥有下面这个 "Orders" 表:
O_Id | OrderDate | OrderPrice | Customer |
---|---|---|---|
1 | 2008/12/29 | 1000 | Bush |
2 | 2008/11/23 | 1600 | Carter |
3 | 2008/10/05 | 700 | Bush |
4 | 2008/09/28 | 300 | Bush |
5 | 2008/08/06 | 2000 | Adams |
6 | 2008/07/21 | 100 | Carter |
现在,我们希望查找订单总金额少于 2000 的客户。
我们使用如下 SQL 语句:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000结果集类似:
Customer | SUM(OrderPrice) |
---|---|
Carter | 1700 |
现在我们希望查找客户 "Bush" 或 "Adams" 拥有超过 1500 的订单总金额。
我们在 SQL 语句中增加了一个普通的 WHERE 子句:
SELECT Customer,SUM(OrderPrice) FROM Orders WHERE Customer='Bush' OR Customer='Adams' GROUP BY Customer HAVING SUM(OrderPrice)>1500结果集:
Customer | SUM(OrderPrice) |
---|---|
Bush | 2000 |
Adams | 2000 |
四、另外需要注意的是:
当同时含有where子句、group by 子句 、having子句及聚集函数时,执行顺序如下:
执行where子句查找符合条件的数据;
使用group by 子句对数据进行分组;对group by 子句形成的组运行聚集函数计算每一组的值;
最后用having 子句去掉不符合条件的组。
select dno,count(*)
from employee
group by dno
having count(*)>3
需要注意:
having 子句中的每一个元素也必须出现在select列表中。有些数据库例外,如oracle.
having子句和where子句都可以用来设定限制条件以使查询结果满足一定的条件限制。
having子句限制的是组,而不是行。where子句中不能使用聚集函数,而having子句中可以。
select dno,sum(salary)
from employee
group by dno
having sum(salary)>10000
您可能感兴趣
- mysql索引分几种(MySQL 覆盖索引的优点)
- mysql innodb存储原理(mysql innodb的重要组件汇总)
- mysql获取当前日期时间(MySQL DATEDIFF函数获取两个日期的时间间隔的方法)
- SQL Server 数据库自动备份
- sqlserver2008数据库的备份(sql server 2008 压缩备份数据库20g)
- mysql 8.0.22 winx64安装配置方法图文教程(mysql 8.0.22 winx64安装配置方法图文教程)
- mysql和explain哪个好(MySQL EXPLAIN输出列的详细解释)
- 最新版mysql 安装教程(新手如何安装Mysql亲测有效)
- sql server 数值类型运算(SQL SERVER2012中新增函数之字符串函数CONCAT详解)
- sql的select语句用法(SQL update select结合语句详解及应用)
- mysql 加锁处理分析(mysql死锁和分库分表问题详解)
- mysql8.0安装版安装详细教程(mysql 8.0.24版本安装配置方法图文教程)
- mysql8.0关键字段使用(MySQL 8.0新特性之隐藏字段的深入讲解)
- sqlserver判断null(SQL Server索引超出了数组界限的解决方案)
- sqlserver数据库实时同步(SQL Server实时同步更新远程数据库遇到的问题小结)
- mysql用什么类型数据(MySQL 数据类型选择原则)
- 七夕取消了,牛郎织女没做核酸七夕已经取消(牛郎织女没做核酸七夕已经取消)
- 网友抵制 多地取消 夏日祭 为何惹众怒(网友抵制多地取消)
- 兄弟萌,今年的七夕又取消了 思考 思考(今年的七夕又取消了)
- 七夕取消是什么梗(七夕取消是什么梗)
- 这竟然是捏出来的 20种橡皮泥玩法让你轻松hold住魔娃(这竟然是捏出来的)
- 自制橡皮泥(自制橡皮泥)
热门推荐
- python中mat文件怎么读(Python第三方库h5py_读取mat文件并显示值的方法)
- 云服务器怎么上传16g文件(云服务器怎么上传下载文件?)
- python怎么用代码写出心形(六行python代码的爱心曲线详解)
- smart工具包括哪些元素(Smarty模板语法详解)
- docker镜像重启数据丢失(Docker数据备份恢复实现过程详解)
- mysql查询分区语句(MySQL中 and or 查询的优先级分析)
- dedecms列表栏目样式修改(在dedecms文章页中获取当前栏目字段如content字段)
- python 多进程读取文件(Python实现的多进程拷贝文件并显示百分比功能示例)
- php提交表单验证表(php实现的表单验证类完整示例)
- python怎样看字符unicode编码(Python3中编码与解码之Unicode与bytes的讲解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9