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
相关文档:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
//sqlserver身份验证
//string sqlconn = "ser ......
第一部分: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语句的常用函数,是冯威老师讲的,我做了简单的笔记:
一,SQL函数:
1. 大小写转换函数
lower 转成小写
upper 大写
initcap 将字符串的(每个单词的)第一个字母变为大写,后面的小写
select initcap('huangHY') from dual
&n ......
我今天学习了Oracle数据库如何修改表的知识,是冯威老师讲的课,我做了简单的记录:
1.在表中插入新的列:
alter table tablename
add city varchar(2) default 'rr' //赋默认值
2.修改表中的列:
alter table tablename
modify city varchar(20)
3.删除表中的列:
alter t ......