SQL语句中having的用法

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

having子句用法一(来自w3school):

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

SQL having子句用法二:

查询表中某字段个数

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
select *, count(Customer) as a from Orders group by Customer having a>1
时间: 2024-12-25 15:43:32

SQL语句中having的用法的相关文章

sql语句中charindex函数用法

作为一个码农,在开发中你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我们将讨论使用CHARINDEX和PATINDEX函数来搜索文字列和字符串.下面将告诉你这两个函数是如何运转的,解释他们的区别. CHARINDEX和PATINDEX函数常常用来在一段字符中搜索字符或者字符串.如果被搜索的字符中包含有要搜索的字符,那么这两个函数返回一个非零的整数,这个整数是要搜索的字符在被搜索的字符中的开始位数.PATINDEX函数支持使用通配符来进行搜索,然而CHARINDEX不支持通

(转)sql语句中charindex的用法

假如你写过很多程序,你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我将讨论使用CHARINDEX和PATINDEX函数来搜索文字列和字符串.我将告诉你这两个函数是如何运转的,解释他们的区别.同时提供一些例子,通过这些例子,你可以可以考虑使用这两个函数来解决很多不同的字符搜索的问题.        CHARINDEX和PATINDEX函数常常用来在一段字符中搜索字符或者字符串.如果被搜索的字符中包含有要搜索的字符,那么这两个函数返回一个非零的整数,这个整数是要搜索的字符在被

sql语句中charindex的用法

假如你写过很多程序,你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我将讨论使用CHARINDEX和PATINDEX函数来 搜索文字列和字符串.我将告诉你这两个函数是如何运转的,解释他们的区别.同时提供一些例子,通过这些例子,你可以可以考虑使用这两个函数来解决很多不同 的字符搜索的问题.        CHARINDEX和PATINDEX函数常常用来在一段字符中搜索字符或者字符串.如果被搜索的字符中包含 有要搜索的字符,那么这两个函数返回一个非零的整数,这个整数是要搜索的字

sql语句中特殊函数的用法

1.concat CONCAT(字串1, 字串2, 字串3, ...): 将字串1.字串2.字串3,等字串连在一起. 例如: Geography 表格 region_name     store_name East        Boston East           New York West         Los Angeles West         San Diego 例子1: MySQL/Oracle: SELECT CONCAT(region_name,store_name)

sql语句中like的用法

在SQL结构化查询语言中,LIKE语句有着至关重要的作用.LIKE语句的语法格式是:select from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的.假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据.现在我们要在姓名字段中查询以"张"字开头的记录,语句如下:select from table1 where name like "张&q

Sql语句中Like嵌套用法

一般的Like用法: SELECT U_NAME FROM T_USER WHERE U_NAME LIKE '%A%' 但是,我此次like关键字后面的对应值是一个变量,需要用select语句来实现,用了CONCAT 关键字,将select到的结果与“%”连接起来,才得以实现所需功能,如下所示: SELECT U_NAME FROM T_USER WHERE U_NAME LIKE CONCAT('%',CONCAT((SELECT STUDENT_NAME FROM T_CLASS WHER

sql语句中 limi的用法

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset 使用查询语句时需要返回前几条或者中间的某几行数据时可以用到limit 例如 mysql>select * from table limit 5,10; 意思是取从第6条开始,包括第6条数据的共10条数据.多用于分页使用 //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:mysql> SELECT * FROM table LIMIT 10,

sql语句中的join用法(可视化解释)

一.innerjoin innerjoin总结来说就是 ,如A知道通往B如何走:B知道通往C如何走:但是A不知道通往C如何走,但是A可以通过B获得去往C的通往方式.. 首先,假设有A,B两张表,结构及数据如下: INNERJOIN INNERJOIN产生的结果集是A表和B表的交集. 代码如下: select <select_list> 结果如下: LEFTJOIN LEFTJOIN产生A表的完全集,而B表中匹配的则有值,没有匹配的则以NULL填充. RIGHTJOIN RIGHTJOIN和LE

SQL语句中count(1)count(*)count(字段)用法的区别

SQL语句中count(1)count(*)count(字段)用法的区别 在SQL语句中count函数是最常用的函数之一,count函数是用来统计表中记录数的一个函数, 一. count(1)和count(*)的区别 1. count(1)和count(*)的作用: 都是检索表中所有记录行的数目,不论其是否包含null值. 2. 区别:但是count(1)比count(*)效率更高 二 . count(字段)与count(1)和count(*)的区别 count(字段)的作用是检索表中的这个字段