zoukankan      html  css  js  c++  java
  • 05_MySQL常见函数_分组函数

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

    分类:
    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行,结果肯定有问题

  • 相关阅读:
    leetcode 刷题日志 2018-03-26
    WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
    sublime wrong
    SSM框架使用-wrong
    C++设计实现算法时易犯错误
    CodeBlocks wrong
    leetcode 刷题日志 2018-3-28
    CountDownLatch
    类加载器和双亲委派
    GC的一个面试题
  • 原文地址:https://www.cnblogs.com/shay-zhangjin/p/7897180.html
Copyright © 2011-2022 走看看