zoukankan      html  css  js  c++  java
  • mysql分组函数及其用例

    功能:用作统计使用,又称为聚合函数或统计函数或组函数

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

    特点

    1sumavg一般用于处理数值型,maxmincount可以处理任何类型

    2、以上分组函数都忽略null

    3、可以和distinct搭配实现去重的运算

    4count函数,一般使用count(*)用作统计行数

    5、和分组函数一同查询的字段要求是group by后的字段

    数据库结构图:

    1、简单的使用

    SELECT SUM(salary) FROM employees; 

    SELECT AVG(salary) FROM employees;

    SELECT MIN(salary) FROM employees;

    SELECT MAX(salary) FROM employees;

    SELECT COUNT(salary) FROM employees;

    SELECT SUM(salary) 和,AVG(salary) 平均,MAX(salary) 最高,MIN(salary) 最低,COUNT(salary) 个数 FROM employees;

    SELECT SUM(salary) 和,ROUND(AVG(salary),2) 平均,MAX(salary) 最高,MIN(salary) 最低,COUNT(salary) 个数 FROM employees;

    2、参数支持哪些类型

     SELECT SUM(last_name) ,AVG(last_name) FROM employees; //sum、avg一般用于处理数值型
    SELECT SUM(hiredate) ,AVG(hiredate) FROM employees;
    SELECT MAX(last_name),MIN(last_name) FROM employees; // maxmin、count可以处理任何类型
    SELECT MAX(hiredate),MIN(hiredate) FROM employees;
    SELECT COUNT(commission_pct) FROM employees;
    SELECT COUNT(last_name) FROM employees;

    3、是否忽略null

    //分组函数是会忽略字段为null的
    SELECT MAX(commission_pct) ,MIN(commission_pct) FROM employees;
    SELECT COUNT(commission_pct) FROM employees;
    SELECT commission_pct FROM employees;

    4、和distinct搭配

    SELECT SUM(DISTINCT salary),SUM(salary) FROM employees; 
    SELECT COUNT(DISTINCT salary),COUNT(salary) FROM employees;

    5count函数的详细介绍

    SELECT COUNT(salary) FROM employees; //如果salary字段有null,则不会被统计
    SELECT COUNT(*) FROM employees; //如果当前表中所有字段都为null时,则不会被统计,某个字段为null还是会被统计的,一般count(*)用来统计行数
    SELECT COUNT(1) FROM employees; //会在当前表添加一列新的字段,字段中全是1,然后统计1的行数

    效率:

    MYISAM存储引擎下,COUNT(*)的效率高

    INNODB存储引擎下,COUNT(*)COUNT(1)的效率差不多,比COUNT(字段)要高一些

     6、和分组函数一同查询的字段有限制

     SELECT AVG(salary),employee_id  FROM employees; //查询的结果employee_id是没有意义的,和分组函数一同查询的字段要求是group by后的字段
  • 相关阅读:
    linux redis安装 5.0.2
    Linux nginx安装步骤 centos7
    fastjson JSONObject.toJSONString 出现 $ref: "$."的解决办法(重复引用)
    docker redis安装及配置(外网访问 关闭安全限制 设置密码)
    JDK dump
    mysql8 修改root密码
    docker系列详解<二>之常用命令
    获取地理位置
    js调用摄像头
    点击时扩散效果
  • 原文地址:https://www.cnblogs.com/gtx690/p/11090996.html
Copyright © 2011-2022 走看看