mysql分组函数

组函数针对的是指定字段的非空值。注意:where子句中不能出现组函数!!!

avg()    平均值(只能针对数值型 )

max()    最大值(不限制类型)

min()    最小值(不限制类型)

count()    计数(针对记录数目,即行数)

stddev()    方差(只能针对数值型)

sum()    求和(只能针对数值型)

前提:person表

  1. id name dept_id salary manager_id
  2. 0001 wangda 101 8500[NULL]
  3. 0002 wanger 1033 000 0009
  4. 0003 wangsan 102 4000 0006
  5. 0004 wangsi 104 2000 0005
  6. 0005 wangwu 104 6000 0001
  7. 0006 wangliu 102 7000 0001
  8. 0007 wangqi 105 5000 0008
  9. 0008 wangba 105 5500 0001
  10. 0009 wangjiu 103 6000 0001
  11. 0010 wangshi 104 900 0005
  12. 0011 wangsy 103 5000 0009
  13. 0012 wangse [NULL]3000[NULL]

group by    排序(可以有一个或者多个字段)

功能:按照部门查询各部门的平均工资

  1. SELECT
  2. dept_id,
  3. avg(salary)
  4. FROM
  5. person
  6. GROUP BY
  7. dept_id;

结果:

  1. dept_id avg(salary)
  2. [NULL] 3000.000000
  3. 101 8500.000000
  4. 102 5500.000000
  5. 103 4666.666667
  6. 104 2966.666667
  7. 105 5250.000000

HAVING    在查询条件中含有组函数时,用来替代WHERE(注意:在mysql中,having只能放在group by的后面!)

功能:查询部门平均工资高于5000的部门名称(dept表)、部门平均工资(person表,组函数)

  1. SELECT
  2. p.dept_id,
  3. dept_name,
  4. avg(salary)
  5. FROM
  6. person p,dept d
  7. where p.dept_id = d.dept_id
  8. GROUP BY
  9. p.dept_id
  10. HAVING
  11. avg(salary)>5000;

结果:

  1. dept_id dept_name avg(salary)
  2. 101 zongwu 8500.000000
  3. 102 zhenggong 5500.000000
  4. 105 renshi 5250.000000
时间: 2024-07-28 20:49:31

mysql分组函数的相关文章

mysql 分组函数

#分组函数:用作统计使用,可嵌套使用 USE myemployees; #sum 求和 SELECT SUM(salary) FROM employees; #avg 求平均 SELECT AVG(salary) FROM employees; #max 求最大值 SELECT MAX(salary) FROM employees; #min 求最小值 SELECT MIN(salary) FROM employees; #count 计算个数 SELECT COUNT(salary) FROM

mysql 分组函数的特点

#能排序就能比较,并且忽略了null值 SELECT MAX(last_name),MIN(last_name),COUNT(last_name) FROM employees; #count只能计算不为null的个数 SELECT COUNT(commission_pct) FROM employees; #忽略了null值 SELECT SUM(commission_pct),AVG(commission_pct) FROM employees; #与去重连用 SELECT SUM(DIST

mysql 分组和聚合函数

Mysql 聚集函数有5个: 1.COUNT() 记录个数(count(1),count(*)统计表中行数,count(列名)统计列中非null数) 2.MAX() 最大值 3.MIN() 最小值 4.AVG()平均值 5.SUM() 求和 聚集函数常常和分组一起工作. 1.创建分组 select name, max(age) from stu group by name; 2.过滤分组 select name, max(age) from stu group by name having mi

mysql常见函数-分组函数

分组函数 1.功能:用作统计使用,又称为聚合函数或统计函数或组函数. 2.分类:sum 求和.avg 平均值.max 最大值.min 最小值.count 计算个数 3.简单使用 SELECT SUM(salary) FROM employees; SELECT AVG(salary) FROM employees; SELECT MAX(salary) FROM employees; SELECT MIN(salary) FROM employees; SELECT COUNT(salary)

Oracle基本语法&&函数&&子查询&&分页查询&&排序&&集合操作&&高级分组函数

一.  数据库 手工---文件管理---数据库 DB:Database 数据库. DBMS:管理数据库的软件.(oracle) 主流关系数据库: 1.      Oracle 2.      DB2 3.      SQL Server 基本没人使 4.      MySQL  基本没人用,免费 Linux 开源,可以发现漏洞补上 Windows服务器会有补丁,数据易泄漏 eclipse 日食 数据表(Table): 表的行(Row):记录 表的列(Column):字段 二.  关系型数据库 一

Oracle和MySQL分组查询GROUP BY

Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别? 答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段必须在GROUP BY后边出现,否则会报错:“ORA-00979: not a GROUP BY expression”.而MySQL则不同,如果SELECT出来的字段在GROUP BY后面没有出现,那么会随机取出一个值,而这样查询出来的数据不准确,语义也不明确.所以,作者建议在写SQL语句的时候,

MySQL拼接函数使用介绍

MySQL拼接函数使用介绍: MySQL常见的拼接的函数有3种concat concat_ws group_concat下面简单介绍下MySQL拼接函数的concat_ws和concat的使用,具体的使用方法可以登录MySQL shell 进行help concat ; concat concat_ws ; concat_ws group_concat 来查看帮助 一.CONCAT()函数介绍: 1.1CONCAT()函数介绍: CONCAT()函数用于将多个字符串连接成一个字符串,但是它不能指

MySQL分组与连表查询

MySQL分组与连表查询 2019-08-23 1.MySQL分组 按照某一个属性降数据进行分组,通过关键字:group by:通常分组会与聚合函数联合使用. 聚合函数常用的有:min,max,sum,avg,count. 比如统计男女生人数 --性别表 create table gendertable( id int auto_increment primary key, gender char(10) )engine=innodb default charset=utf8; insert i

数据库SQL的分组函数

分组函数:(五个) 1···max(expr):求expr的最大值 }\ 2···min(expr):求expr的最小值 }-- 数据类型是有规定的 3···sum(expr):求expr的总和 }-- 必须是字符型或数字 4···avg(expr):求expr的平均值 }/ 5···count(expr):求expr的个数 expr的类型不能是空,如果是空,则不计入其中, 因此需要用到nvl()来进行转换 group by expr1,expr2,...的用法: group by 的后面跟的是