SQL语言基础(3)
GROUP BY子句
指定查询结果的分组条件
语法:GROUP BY [ALL] group_by_expression_r_r [,n]
[WITH{CUBE|ROLLUP}]
group_by_expression_r_r指明分组条件,通常是一个列名,但不能是列的别名。
ALL返回所有查询结果的组合。如果没有满足where子句的数据则由NULL值构成数据。ALL的选项不能与cube或rollup选项同时使用。
cube:除了返回由GROUP BY指定的列外,还返回按组统计的行。返回结果先按第一个条件列排序显示,再按第二个条件列排序显示,以此类推。统计列包括了各种组合的数据统计。
rollup:对GROUP BY中列的顺序敏感,只返回第一个分组条件指定的列的统计行,改变列的顺序会使返回的结果的行数发生变化。
注意使用group by子句时后面的变量要和select后相一致,没有包含在聚合函数中的变量都应该作为group by后的变量。
HAVING 子句指定分组搜索条件。通常和group by一起使用
HAVING子句和WHERE很相似,但WHERE子句作用于表和视图,HAVING子句作用于组。
SELECT DEPT_ID,COUNT(*)
from EMPLYEE
WHERE E_WAGE>=6000
GROUP BY DEPT_ID
HAVING COUNT(*)>1;其中COUNT(*)表示满足条件的元素个数。
ORDER BY子句,指定查询结果的排序方式,默认升序ASC降序DESC
查询工资最高的三名员工
select top 3 e_name,e_wage
from employee
order by e_wage desc;
compute子句:在查询结尾的末尾生成一个汇总数据行。
compute{{AVG|COUNT|MAX|MIN|SUM} (expression_r_r [...,n]) [by expression_r_r[...,n]]}这些函数会忽略NULL值,并且DISTINCT选项不能在此使用。
expression_r_r必须包含在select的选项里,并且不能使用别名。
by expression_r_r在查询结果中生成分类统计的行,如果使用,必须使用order by子句,expression_r_r对应order by子句的一部分或全集。
如:select 员工姓名,所属部门,工资
from 员工数据表
order by 所属部门
compute sum(工资) by 所属部门
结果会出现在每个所属部门分组后有一个计算sum的行
聚合函数:AVG,SUM,MIN,MAX,COUNT
COUNT(*)计算表中的行数,一样的都计算上。COUNT(DISTINCT)计算不同的行数
汇总函数忽略NULL值。
以上几个子句中数据类型不能为text,ntext,image或bit类型。
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
50个Sql语句,仅供学习!
Student(S#,Sname,Sage,S***) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from (select s#,score from SC ......
eclipse 关联 sql server 的JDBC问题
编程运行后提示:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
上网查了,有的说在环境变量里的classpath添加 JDBC里的3个jar文件就可以,但是使用后还是不行。
后来才知道解决方法:
包资源管理器-->包名右键"构建路径"--> ......
查询语句
语法格式:
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_
[SQL_CACHE | SQL_ ......