linux之SQL语句简明教程---HAVING

那我们如何对函数产生的值来设定条件呢?举例来说,我们可能只需要知道哪些店的营业额有超过 $1,500。在这个情况下,我们不能使用 WHERE 的指令。那要怎么办呢?很幸运地,SQL
有提供一个 HAVING 的指令,而我们就可以用这个指令来达到这个目标。 HAVING 子句通常是在一个 SQL 句子的最后。一个含有 HAVING 子句的 SQL 并不一定要包含 GROUP
BY
 子句。HAVING 的语法如下:

SELECT "栏位1", SUM("栏位2")

FROM "表格名"

GROUP BY "栏位1"

HAVING (函数条件);

请读者注意: GROUP BY 子句并不是一定需要的。

在我们 Store_Information 表格这个例子中,

Store_Information 表格

Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999

我们打入,

SELECT Store_Name, SUM(Sales)

FROM Store_Information

GROUP BY Store_Name

HAVING SUM(sales) > 1500;

结果:

Store_Name SUM(Sales)
Los Angeles 1800

Linux实测:

转载请注明:小刘

时间: 2024-12-10 23:00:46

linux之SQL语句简明教程---HAVING的相关文章

linux之SQL语句简明教程

本教程参考http://www.1keydata.com/cn/sql/ 目的是让初学者了解linux下Mysql的操作,但是我仍想侧重于SQL语句的讲解 sql语句的学习将按照下图的流程: 当然在这之前我们需要简单了解下linux下mysql的安装,以及基本操作. 关于如何安装和使用linux下mysql请参考:http://blog.csdn.net/u013018721/article/details/34889367 转载请注明:小刘

linux之SQL语句简明教程---INSERT INTO

到目前为止,我们学到了将如何把资料由表格中取出.但是这些资料是如果进入这些表格的呢? 这就是这一页 (INSERT INTO) 和下一页 (UPDATE) 要讨论的. 基本上,我们有两种作法可以将资料输入表格中内.一种是一次输入一笔,另一种是一次输入好几笔.我们先来看一次输入一笔的方式. 依照惯例,我们先介绍语法.一次输入一笔资料的语法如下: INSERT INTO "表格名" ("栏位1", "栏位2", ...) VALUES ("

linux之SQL语句简明教程---CREATE VIEW

视观表 (View) 可以被当作是虚拟表格.它跟表格的不同是,表格中有实际储存资料,而视观表是建立在表格之上的一个架构,它本身并不实际储存资料. 建立一个视观表的语法如下: CREATE VIEW "VIEW_NAME" AS "SQL 语句"; "SQL 语句" 可以是任何一个我们在这个教材中有提到的 SQL. 来看一个例子.假设我们有以下的表格: Customer 表格 栏位名称 资料种类 First_Name char(50) Last_N

linux之SQL语句简明教程---Subquery

我们可以在一个 SQL 语句中放入另一个 SQL 语句.当我们在 WHERE 子句或 HAVING 子句中插入另一个 SQL 语句时,我们就有一个 subquery 的架构. Subquery 的作用是什么呢?第一,它可以被用来连接表格.另外,有的时候 subquery 是唯一能够连接两个表格的方式. Subquery 的语法如下: SELECT "栏位1" FROM "表格" WHERE "栏位2" [比较运算素] (SELECT "

linux之SQL语句简明教程---UNION

UNION 指令的目的是将两个 SQL 语句的结果合并起来.从这个角度来看, UNION 跟 JOIN有些许类似,因为这两个指令都可以由多个表格中撷取资料. UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类.另外,当我们用 UNION 这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT). UNION 的语法如下: [SQL 语句 1] UNION [SQL 语句 2]; 假设我们有以下的两个表格, Store_Information 表格 S

linux之SQL语句简明教程---UNION ALL

UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起. UNION ALL 和UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复. UNION ALL 的语法如下: [SQL 语句 1] UNION ALL [SQL 语句 2]; 我们用和上一页同样的例子来显示出 UNION ALL 和 UNION 的不同.同样假设我们有以下两个表格, Store_Information 表格 Store_Name Sales Txn_Da

linux之SQL语句简明教程---AND OR

在上一页中,我们看到 WHERE 指令能够被用来由表格中有条件地选取资料. 这个条件可能是简单的 (像上一页的样例).也可能是复杂的. 复杂条件是由二或多个简单条件透过 AND 或是 OR的连接而成.一个 SQL 语句中能够有无限多个简单条件的存在. 复杂条件的语法例如以下: SELECT "栏位名" FROM "表格名" WHERE "简单条件" {[AND|OR] "简单条件"}+; {}+ 代表{}之内的情况会发生一或多

linux之SQL语句简明教程---UPDATE DELETE FROM

我们有时候可能会需要修改表格中的资料.在这个时候,我们就需要用到 UPDATE 指令.这个指令的语法是: UPDATE "表格名" SET "栏位1" = [新值] WHERE "条件"; 最容易了解这个语法的方式是透过一个例子.假设我们有以下的表格: Store_Information 表格 Store_Name Sales Txn_Date Los Angeles 1500 05-Jan-1999 San Diego 250 07-Jan-1

linux之SQL语句简明教程---SELECT

SQL是用来做什么的呢?一个最常用的方式是将资料从数据库中的表格内选出.从这一句回答中,我们马上可以看到两个关键字: 从 (FROM) 数据库中的表格内 选出 (SELECT).(表格是一个数据库内的结构,它的目的是储存资料.在 表格处理这一部分中,我们会提到如何使用 SQL 来设定表格.) 我们由这里可以看到最基本的 SQL 架构: SELECT "栏位名" FROM "表格名"; 我们用以下的例子来看看实际上是怎么用的.假设我们有以下这个表格: Store_In

linux之SQL语句简明教程---CONCATENATE

有的时候,我们有需要将由不同栏位获得的资料串连在一起.每一种资料库都有提供方法来达到这个目的: MySQL: CONCAT( ) Oracle: CONCAT( ), || SQL Server: + CONCAT( ) 的语法如下: CONCAT (字串1, 字串2, 字串3, ...) 将字串1.字串2.字串3,等字串连在一起.请注意,Oracle 的 CONCAT( ) 只允许两个参数:换言之,一次只能将两个字串串连起来.不过,在Oracle中,我们可以用 '||' 来一次串连多个字串.