# 分组函数
/*
功能: 统计,又称为聚合函数,统计函数,组函数
传入一组值,统计后得到一个值

分类:
sum 求和,avg 平均值,max 最大值,min 最小值,count 计算个数

特点:
1. sum,avg处理数值型
    max,min,count处理任何类型

2. 是否忽略null值
分组函数都忽略null值,不参与统计

3. 可以和distinct搭配,先去重再计算

4、count函数的详细介绍
count(x) x字段的非null行数
count(*) 表的总行数(一行中只要有1个字段不为null, 则计入)
count(常量) 表的总行数(相当于表中增加1列,值为给定的常量

统计效率:
存储引擎为myisam, count(*)效率最好,有1个内部计数器直接保存了count(*)
存储引擎为innodb, count(*)和count(1)类似,但比count('常量字段')效率高(要判断null)

5、和分组函数一同查询的字段有限制(返回的逻辑表,结构要规则)
要求是group by后的字段(逻辑表要规则)

*/

# 1、简单的使用
SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MAX(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT COUNT(salary) FROM employees;

SELECT SUM(salary) AS 和, TRUNCATE(AVG(salary),4) 平均, MAX(salary) 最大
FROM employees;

# 2、参数支持哪些类型
# sum,avg: 数值类型才有意义
# max,min: 数值类型,字符型(字典顺序), 日期型
# count: 数值,字符,日期型(非null的个数)
SELECT MAX(hiredate),MIN(hiredate) FROM employees;
SELECT COUNT(last_name), COUNT(commission_pct) FROM employees; # 107,35

# 3、是否忽略null值

# 忽略null值
SELECT SUM(commission_pct), AVG(commission_pct)FROM employees;

# 忽略null值
SELECT MAX(commission_pct), MIN(commission_pct) FROM employees;

# 4、和distinct搭配(去重统计)
SELECT SUM(DISTINCT salary), SUM(salary) FROM employees; # 先去重再求和

SELECT COUNT(DISTINCT salary), COUNT(salary) FROM employees; # 先去重再计数

SELECT MAX(DISTINCT salary), MIN(DISTINCT salary) FROM employees; # 先去重

# 5、count的详细介绍

SELECT COUNT(salary) FROM employees; # salary字段的非null行数

SELECT COUNT(*) FROM employees; # count(*),表的总行数(一行中只要有1个字段不为null, 则计入)

SELECT COUNT(1) FROM employees; # 等价于给表增加了1列1, 统计该列的行数(表的实际行数)

# 6、和分组函数一同查询的字段有限制
# 逻辑表的结构也要规则(不能1个字段x行,1个字段y行)

# 错误实例
SELECT AVG(salary), employee_id FROM employees; # avg只有1行,employee_id有107行,结果肯定有问题

05_MySQL常见函数_分组函数的更多相关文章

  1. 04_MySQL常见函数_单行函数

    #单行函数细分1.字符函数2.数学函数3.日期函数4.其他函数5.流程控制函数 #单行函数 - 字符函数#一.字符函数#1. length 获取参数的字节长度SELECT LENGTH('john') ...

  2. mysql基础教程(二)-----分组函数、多表查询、常见函数

    分组函数 什么是分组函数 分组函数作用于一组数据,并对一组数据返回一个值. 组函数类型 • AVG() • COUNT() • MAX() • MIN() • SUM() 组函数语法 AVG(平均值) ...

  3. mysql 字符串函数、分组函数

    字符串函数 1.concat 函数 drop table test;create table test(id int(4), name varchar(10), sex char(2));insert ...

  4. DQL---条件查询、单行函数、多行函数、分组函数、数据类型

    一.DQL 1.基本规则: (1)对于日期型数据,做 *,/ 运算不合法,可以进行 +, - 运算.比如给日期加一天或减一个月,结果仍为一个日期.两个日期间只能为减法,返回两个日期相差的天数,两个日期 ...

  5. (四)MySQL条件查询(通配符、模糊查询)、排序查询、分组查询(单行、分组函数)

    一.条件查询 1.含义:前面学的基础查询可以查询一个或多个字段,如果需要的数据仅仅是其中的某一行或多行就用到了条件查询. 2.语法:(序号表示语句执行顺序) SELECT 字段名 ③ FROM 表名 ...

  6. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

        花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...

  7. Oracle_SQL函数-分组函数

    分组函数 什么是分组函数 分组函数作用于一组数据,并对一组数据返回一个值 组函数类型:主要有6种 AVG - 平均 COUNT - 计数 MAX - 最大 MIN - 最小 SUM - 求和 STDD ...

  8. oracle 10g 学习之多表查询、分组函数(6)

    笛卡尔集 l  笛卡尔集会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 l  为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件. 自连接 select m.las ...

  9. 常用分组函数count-avg-sum-max-min

    分组函数也称多行函数,用于对一组数据进行运算,针对一组数据(取自于多行记录的相同字段)只返回一个结果,例如计算公司全体员工的工资总和.最高工资.最低工资.各部门的员工平均工资(按部门分组)等.由于分组 ...

随机推荐

  1. django-luffycity-购物车接口

    一  基本功能 -添加购物车 -详见代码 -修改课程价格策略 -put或者patch {"course_id": "1", "policy_id&qu ...

  2. Django在生产环境中的部署

    基本思路 1.方案:Nginx+uwsgi 这样大体的流程是:nginx作为服务器最前端,负责接收client的所有请求,统一管理.静态请求由Nginx自己处理.非静态请求通过uwsgi传递给Djan ...

  3. K-means聚类算法MATLAB

    以K-means算法为例,实现了如下功能 自动生成符合高斯分布的数据,函数名为gaussianSample.m 实现多次随机初始化聚类中心,以找到指定聚类数目的最优聚类.函数名myKmeans.m 自 ...

  4. 每人涨10%的工资,涨的前一共不超过5万,从低工资往高工资的人涨,超过5W则停止涨,问涨的钱花了多少,多少人获得了涨薪。

    ;with test(CID,money,NewAmount) as ( SELECT Row_Number() over ( order by money ) as CID ,money ,mone ...

  5. testng的@Factory及其与@DataProvider的区别

    Factory,顾名思意就是工厂,也就是工厂方法,在软件开发中一般结合多态使用,用来根据不同的条件创建不同的类对象. 在这里,Factory一般用来创建一个测试类的多个实例,每个实例属性不同,以执行不 ...

  6. Java集合—Map

    简介 Map用户保存具有映射关系的数据,因此Map集合里保存着两组数,一组值用户保存Map里的key,另一组值用户保存Map里的value,key和value都可以是任何引用类型的数据.Map的key ...

  7. windows批处理初学贴出一些命令

    在cmd窗口中复制时,右键选标记,然后再选择此时选择区域就变白了.然后要么直接拖到要粘贴的地方,要么直接按回车存到剪贴板里. 1.循环导入文件夹下面的文件到数据库中 cd /d D:/Program ...

  8. 20165324 Java实验五 网络编程与安全

    20165324 Java实验五 网络编程与安全 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324 指导教师:娄嘉鹏 实验日期:2018年5月28日 实 ...

  9. python介绍和基础(待补充)

    python的介绍 把命令放到一个文件中,文件还能执行,这样的语言叫shell脚本 写一个c语言程序,.c结尾的,gcc运行c语言程序,生成.out文件,然后执行.out文件 c语言是先编写代码,再编 ...

  10. XDU 1003 B进制加法(高精度)

    #include<bits/stdc++.h> using namespace std; long long mpow(long long a,long long b) { ; ) ; w ...