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

sql分组函数使用


转自:http://book.csdn.net/bookfiles/235/10023510864.shtml
在实际SQL应用中,经常需要进行分组聚合,即将查询对象按一定条件分组,然后对每一个组进行聚合分析。
GROUP BY子句创建分组
创建分组是通过GROUP BY子句实现的。与WHERE子句不同,GROUP BY子句用于归纳信息类型,以汇总相关数据。而为什么要使用GROUP BY子句创建分组呢?可通过下面这个简单例子来说明。
实例17 单一分组的查询
假如要从TEACHER表中查询所有男教师的平均工资,用前面介绍的聚合函数AVG(),实现代码如下:
SELECT AVG(SAL) AS boyavg_sal
from     TEACHER
WHERE   TSEX='男'
运行结果如图8.18所示。
图8.18 TEACHER表中查询所有男教师的平均工资
而如果同时需要查询所有女教师的平均工资,该如何处理呢?显然,采用上述方法只能在WHERE子句中改变查询条件,重新查询。而如果要在一次查询中,同时得到二者的查询结果,就需要以性别为基准,将表中的所有数据记录分组,即男教师组和女教师组,并分别对两组数据进行分析,即计算工资(SAL列)的平均值。
实现上述功能,就需要使用分组子句GROUP BY。包括GROUP BY子句的查询就称为组合查询。语法如下。
SELECT                              column, SUM(column)
from             table
GROUP BY        column
说明:GROUP BY子句依据column列里的数据对行进行分组,即具有相同的值的行被划为一组。它一般与聚合函数同时使用。当然,这里的SUM()函数也可以是其他聚合函数。所有的组合列(GROUP BY子句中列出的列)必须是来自from子句列出的表,不能根据实际值、聚合函数结果或者其他表达式计算的值来对行分组。
实例18 GROUP BY子句分组查询
从TEACHER表中查询所有男教师的平均工资和所有女教师的平均工资,实现代码如下。
SELECT           TSEX+'教师'AS TEACHER, AVG(SAL) AS avg_sal
from                              &nb


相关文档:

用T SQL语句实现SQL server与XLS,MDB等文件的数据交换

第一部分:SQL server与ACCESS数据库的交换
软件开发网
1. 在SQL SERVER里查询access数据: 软件开发网
SELECT * from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名
--------------------------------------------------------------------------
2. 将ac ......

sql语句查询怎么判断查询结果为空?

sqldataadapter适合用在查询较多字段时.....
string sou = "select * from art where content like '%" + TextBox1.Text + "%'";
SqlDataAdapter da = new SqlDataAdapter(sou, conn);
DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].rows.count==0)
{
Response.Write("没有记录!");
}
else
{
......

SQL 构造时间表方法123

(1)SQL方法(1)
select convert(varchar(5),dateadd(hour,number,cast('00:00' as datetime)),108)+'~'+
convert(varchar(5),dateadd(hour,number+1,cast('00:00' as datetime)),108) as [date]
from master..spt_values
where type = 'P' and
number <= 23
(2)SQL方法(2)
得出一天的时间段记录。(如&nb ......

日程安排生成的sql语句

select *
from
(select [id]=row_number() over (order by getdate()),
        date=convert(varchar(8),dateadd(dd,number,'2010-01-01'),112)
        from
        (select number from master..spt ......

SQL脚本创建表

if exists(select * from sysobjects where name='atzk')--判断是否存在此表
drop table atzk
go
create table atzk
(
  nid int identity(1,1) primary key,--nid自动编号,并设为主键。
  mytitle varchar(50) not null,--通知的标题。
  mycontents varchar(200)--发布通知的内容。
 ) ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号