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
您可能感兴趣
- mysqlexplain解析(Mysql explain用法与结果深入分析)
- mysql8.0详解(MySQL 8.0 的 5 个新特性,太实用了!)
- mysql8.0关键字段使用(MySQL 8.0新特性之隐藏字段的深入讲解)
- activiti需要sql语句吗(Activiti-Explorer使用sql server数据库实现方法)
- mysqlorder工作原理(详解Mysql order by与limit混用陷阱)
- sql取值唯一的方法(SQL 获取所有上级的实现方法)
- sqlserver日志被删除(sql server日志处理不当造成的隐患详解)
- sql server 实例功能(SQL Server简单查询示例汇总)
- mysql中数据类型的学习体会(MySQL 实现lastInfdexOf的功能案例)
- mysql 索引表空间(MySQL如何构建数据表索引)
- mysql运算符使用方法(MySQL <>和<=> 运算符介绍)
- sqlserver 存储过程参数类型(详解SQL Server表和索引存储结构)
- sqlserver2000升级教程(MSSQL 2000 使用帮助sql server简明教程)
- mysql update 多个字段(mysql update case 更新字段值不固定的操作)
- sqlserver字段增加删减(关于SQL Server中bit类型字段增删查改的一些事)
- sqlserver 数据量需要多少内存(SQL Server在AlwaysOn中使用内存表的“踩坑”记录)
- 寒假旅游攻略(成都寒假旅游攻略)
- 菲律宾旅游攻略(菲律宾旅游攻略地图)
- 清华大学难考吗(清华大学考研录取分数线)
- 观花盆栽佛肚竹盆景制作及养护(观花盆栽佛肚竹盆景制作及养护)
- 春天养佛肚竹,做好这几件事,叶绿根壮寓意好 越养越旺家(春天养佛肚竹做好这几件事)
- 律界衣品最好,时尚圈学识数高,41岁的Amal堪称现实版的傲骨贤妻(时尚圈学识数高)
热门推荐
- python怎么用代码写出心形(六行python代码的爱心曲线详解)
- SqlServer数据库中文乱码问题解决方法(SqlServer数据库中文乱码问题解决方法)
- CentOS 7下安装配置proftpd搭建ftp服务器的详细教程(CentOS 7下安装配置proftpd搭建ftp服务器的详细教程)
- python微信支付接口(Python提取支付宝和微信支付二维码的示例代码)
- python教程第126节(Python 学习教程之networkx)
- vuephp后台开发框架(Vue+thinkphp5.1+axios实现文件上传)
- 云主机的作用和功能(云主机具备的特性有哪些?)
- python转换doc到pdf(利用python将图片版PDF转文字版PDF)
- vmware esxi账号密码(VMware Esxi忘记root密码成功找回的操作方法)
- pandas字典转化为dataframe(pandas修改DataFrame列名的实现方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9