快捷搜索:  汽车  科技

sql查询分组统计平均数(高级软件测试人员一定要掌握的SQL之分组统计)

sql查询分组统计平均数(高级软件测试人员一定要掌握的SQL之分组统计)(1)求出每个班级的人员数量{ORDER BY 排序的字段 1 排序的字段 2 ASC|DESC}FROM 表名称 {WHERE 条件(s)} {GROUP BY 分组条件}

未经王豆豆同意,不予转载,如要转载,请注明出处。

写了这么多天,终于把SELECT语句写完了。

sql查询分组统计平均数(高级软件测试人员一定要掌握的SQL之分组统计)(1)

分组统计查询---GROUP BY

格式:

SELECT {DISTINCT} *|具体的列 别名

FROM 表名称

{WHERE 条件(s)}

{GROUP BY 分组条件}

{ORDER BY 排序的字段 1 排序的字段 2 ASC|DESC}

(1)求出每个班级的人员数量

SELECT class count(*)

FROM class

group by class;

(2)求出每个课程的平均分数

SELECT scno avg(score)

为什么会出现上面的情况 是因为分组函数的存在:

1.如果分组函数存在 要显示分组条件的字段 则需要加上分组条件

2.如果分组函数单独使用 可以不用加上分组条件

在没有分组条件存在的情况下,分组函数必须单独存在

如果有分组条件GROUP BY,显示结果集可以包含分组条件的字段,其它的字段不能出现

错误的写法:

SELECT scno xuehao avg(score) FROM score group by scno;

分组条件---HAVING

只出现在GROUP BY后面的语句

SELECT完整的格式:

SELECT {DISTINCT} *|具体的列 别名

FROM 表名称 {

SELECT {DISTINCT} *|具体的列 别名

FROM 表名称

{WHERE 条件(s)}

{GROUP BY 分组条件 HAVING 分组函数}

{ORDER BY 排序的字段1 ASC|DESC 排序的字段2 ASC|DESC}

} 别名……

{WHERE 条件(s){

SELECT {DISTINCT} *|具体的列 别名

FROM 表名称

{WHERE 条件(s)}

{GROUP BY 分组条件 HAVING 分组函数}

{ORDER BY 排序的字段1 ASC|DESC 排序的字段2 ASC|DESC}}

{GROUP BY 分组条件 HAVING 分组函数}

{ORDER BY 排序的字段1 ASC|DESC 排序的字段2 ASC|DESC}

sql查询分组统计平均数(高级软件测试人员一定要掌握的SQL之分组统计)(2)

(1)求出平均分数大于90的课程号

错误写法:

SELECT scno FROM score WHERE avg(score) > 2000;

错误提示:1111 - Invalid use of group function

分组函数不允许出现在WHERE条件中,必须与group by 分组条件搭配使用

正确写法:

SELECT scno FROM score

GROUP BY scno HAVING avg(score) > 90;

(2)查询出班级人数大于5人的班级名称

SELECT class FROM class

GROUP BY class HAVING count(*) >5;


完整版的SQL系列:

软件测试人员不可不知的SQL语言之简单查询(SELECT)

SQL:INNER JOIN LEFT JOIN RIGHT JOIN 哪一个连接查询更合你意

高级软件测试人员一定要掌握的SQL语言之嵌套查询(MYSQL)

SQL语言练习数据:class表 AND course表 AND score表结构和数据

软件测试人员:你们需要用到SQL函数么?(sum count avg...)

王豆豆不喜欢搬运,这些文章都是王豆豆慢慢写出来,花了不少劲力,未经王豆豆同意,不予转载,如要转载,请注明出处。

猜您喜欢: