易截截图软件、单文件、免安装、纯绿色、仅160KB

深入浅出SQL教程之Group by和Having


在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
SELECT SUM(population) from bbc
  这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。
  通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。当你指定 GROUP BY region 时, 属于同一个region(地区)的一组数据将只能返回一行值,也就是说,表中所有除region(地区)外的字段,只能通过 SUM, COUNT等聚合函数运算后返回一个值。
  HAVING子句可以让我们筛选成组后的各组数据,WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前.
而 HAVING子句在聚合后对组记录进行筛选。
  让我们还是通过具体的实例来理解GROUP BY 和 HAVING 子句,还采用第三节介绍的bbc表。
  SQL实例:
  一、显示每个地区的总人口数和总面积:
SELECT region, SUM(population), SUM(area)
from bbc
GROUP BY region
  先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。
  二、 显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。
SELECT region, SUM(population), SUM(area)
from bbc
GROUP BY region
HAVING SUM(area)>1000000
  在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。
  相反,HAVING子句可以让我们筛选成组后的各组数据.


相关文档:

sql语法


 
 
SQL语法手册
Select
用途:
 从指定表中取出指定的列的数据
语法:
 
SELECT column_name(s) from table_name
 
解释:
从数据库中选取资料列,并允许从一或多个资料表中,选取一或多个资料列或资料行。SELECT 陈述式的完整语法相当复杂,但主要子句可摘要为:
SELECT select_ ......

PHP存取SQL Server数据库

1.选择操作的数据库
连接到服务器之后,首先需要选择要进行操作的数据库。使用PHP的MSSQL扩展库中的mssql_select_db()函数即可实现连接服务器上的数据库。该函数格式如下:
bool mssql_select_db(string database_name[,resource link_identifier)
该函数各参数意义:
a. 参数 database_name为指定的服务器上可用的数据 ......

SQL decimal介绍

具有固定有效位数和小数位数的数值资料类型。
decimal[ (p[ , s] )] and numeric[ (p[ , s] )]
固定有效位数和小数位数的数字。当使用最大有效位数时,有效值是从 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同义字是 dec 和 dec(p, s)。numeric 的功能相当於 decimal。
p (有效位数)
可储存的最大十进位数总数,小 ......

SQL 用exists代替全称量词

学习sql的必经问题。
学生表student (id学号     Sname姓名       Sdept所在系)  
课程表Course           (crscode课程号       name课程名)  
学生选课表transcript           (studid学号 &nbs ......

SQL 查询“仅仅”至少“全部”的问题

“全部的问题”在上一篇中已经写过一点了。
“仅仅”
:这个问题可以使用多表连接来处理。例如:查询仅仅选修了课程A和课程B的学生的信息,sql如下:
其中表student定义了学生的信息。transcript定义了学生的选课情况。crscode字段表示课程代码。
select s.id
from student s,transcript t1,transc ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号