- 39
- 0
- 约2.4千字
- 约 22页
- 2018-03-27 发布于江苏
- 举报
VFsql分组统计
连接再分组查询练习 SELECT语句基本格式 SELECT [ALL|DISTINCT] [TOP数值|PERCENT]字段表达式[,字段表达式 AS 虚拟字段名 ] … FROM 基本表名或视图名[,基本表名或视图名]… [ WHERE 条件表达式 ] [ GROUP BY 字段1 [ HAVING 条件表达式 ] ] [ ORDER BY 字段2 [ASC|DESC] ] [ INTO ARRAY 数组名] | [INTO CURSOR 临时表名] | [INTO DBF|TABLE 永久表名]|[TO FILE 文本文件名]] 必须先写Select,其它的任意。 用order关键字对查询结果排序 SELECT …; FROM …; ORDER BY 字段名1 [ASC|DESC] , 字段名2 [ASC|DESC] , … ] (注:字段名可以用字段序号代替) 23 男 Tom 001 学号 姓名 性别 年龄 004 Bob 女 21 002 Alice 女 22 003 Bob 男 22 SELECT * FROM 学生; ORDER BY 年龄 SELECT * FROM 学生; ORDER BY 年龄 DESC 21 女 Bob 004 学号 姓名 性别 年龄 001 Tom 男 23 002 Alice 女 22 003 Bob 男 22 4 4 用order对多个关键字排序 23 男 Tom 001 学号 姓名 性别 年龄 004 Bob 女 21 002 Alice 女 22 003 Bob 男 22 SELECT * FROM 学生; ORDER BY 年龄,学号 DESC 例:先按年龄升序排列,年龄相同的再按学号降序排列 SELECT [TOP数值|PERCENT] …; FROM …; ORDER BY…; 保留排序结果的前n(百分之n)条记录 SELECT TOP 10 *; FROM student; ORDER BY 英语 DESC; SELECT TOP 20 PERCENT *; FROM student; ORDER BY 英语; 查询英语成绩前10名的学生记录。 查询按英语成绩升序排序前百分之20名的学生记录。 统计查询(分组统计查询) COUNT( 字段名 或 *) 统计记录个数。 SUM(字段名) 计算某一列值的总和(字段必须是数值型)。 AVG( 字段名) 计算某一列的平均值(字段必须是数值型)。 MAX(字段名) 计算某一列值的最大值。 MIN(字段名) 计算某一列值的最小值。 统计查询(个数COUNT( )) 选课 【例】查询选课记录个数,结果的列标题为“记录个数” Select count(*) From 选课 【例】查询参与选课学生人数,结果的列标题为“学生人数 ” (不计重复的学生) Select count(Distinct *) As 学生人数 From 选课 统计查询(最值max( )、min()) 选课 【例】查询分数最高的成绩 Select max(成绩) As 最高分 From 选课 【例】查询001学生的最低成绩 Select min(成绩) From 选课 Where 学号=“001” 统计查询(和求sum( )、求平均avg( )) 选课 【例】查询学号为”001”的平均成绩 Select avg(成绩) From 选课 where 学号=001 【例】所有成绩的总分 Select sum(成绩) From 选课 分组统计查询(用Group by 分组,用筛选having分组结果) 【例】统计各职称的人数 Select 职称, count(*) as 人数; From 教师; Group by 职称 教师 【例】统计除了“讲师”的,各职称的人数。 Select 职称, count(*) as 人数; From 教师; Group by 职称; Having 职称讲师 【例】统计每个学生平均成绩信息(结果包含学号、平均成绩字段) Select 学号, avg(成绩) as 平均成绩 ; From 选课 ; Group by 学号 选课 【例】统计平均成绩大于等于90的学生信息(结果包含学号、平均成绩字段)。 Select 学号, avg(成绩) as 平均成绩 ; From 选课 ; Group by 学号; Having 平均成绩=90 【例】统计平均成绩大于等于90的学生学号。 注意:当having中可以用表达式代替虚拟字段 教师 【例】统计各性别内每种职称的人员数 Select 性别+职称,count(*) 人数 ; From 教师; Group by 性别+教师 分组统计查询(用多个字段分
原创力文档

文档评论(0)