美文网首页
mysql 分组函数(统计函数)

mysql 分组函数(统计函数)

作者: 哈斯勒 | 来源:发表于2019-06-19 15:17 被阅读0次
    #分组函数
    #用作统计使用,又称为聚合函数或组函数
    /*
    sum:
    avg
    max
    min
    count:
    
    */
    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;
    
    
    # 使用特点
    #参数类型支持哪些类型: 
    #sum avg : 数值型
    #max min : 任何类型
    #count :非空值个数
    
    
    #是否忽略null值: 
    # sum null值不参与运算
    # avg 忽略null值
    # max min 
    # count 忽略
    
    
    # 可以和distinct 搭配
    SELECT SUM(DISTINCT salary), SUM(salary) FROM employees;
    SELECT COUNT(DISTINCT salary), COUNT(salary) FROM employees;
    
    #count 的详细介绍
    SELECT COUNT(salary) FROM employees;
    
    # 任何非空列都包括
    # 常用来统计包含多少行
    SELECT COUNT(*) FROM employees; //只要每列的值不全为空,都计算在内
    
    SELECT COUNT(1) FROM employees; //相当于添加一列,每列值为1,统计1的个数
    
    #效率
    MYISAM存储引擎下,COUNT(*)的效率高
    INNODB存储引擎下,COUNT(*)和COUNT(1)的效率差不多,比COUNT(字段)要高一些
    COUNT(字段)需要判断字段的值是否为null,为null不计算在内,涉及到筛选操作
    
    #和分组函数一同查询的字段要求是group by 后的字段
    SELECT AVG(salary),employee_id FROM employees;
    此处employee_id没有意义
    
    
    #  查询最大入职天数和最小入职天数的相差天数
    SELECT DATEDIFF(MAX(hiredate),MIN(hiredate)) FROM employees;
    
    # 查询部门为90的员工个数
     SELECT COUNT(*) FROM employees
    WHERE department_id=90;
    

    相关文章

      网友评论

          本文标题:mysql 分组函数(统计函数)

          本文链接:https://www.haomeiwen.com/subject/dfhkqctx.html