MySQL函数2_mysql自定义函数

MySQL函数2_mysql自定义函数聚合函数(只有一个结果) 聚合函数的介绍 聚合函数的常用类型(都不含空值) AVG() SUM() MAX() MIN() COUNT() AVG()和SUM() AVG:求平均 SUM():求和 #

MySQL函数2

聚合函数(只有一个结果)

聚合函数的介绍

MySQL函数2_mysql自定义函数

  • 聚合函数的常用类型(都不含空值)

AVG()

SUM()

MAX()

MIN()

COUNT()

AVG()和SUM()

  • AVG:求平均
  • SUM():求和
#求平均工资和工资总和
SELECT AVG(salary),SUM(salary)
FROM employees;

注:不能处理字符串

MAX()和MIN()

  • MAX():求最大
  • MIN():求最小
#求最高工资和最低工资
SELECT AVG(salary),SUM(salary)
FROM employees;

注:可以处理字符串,数值类型,日期时间类型的字段(或变量)

COUNT()

COUNT():计算指定字段在查询结果中出现的个数

SELECT COUNT("*")
FROM employees

注:不包括null

  • 查询表中有多少条记录:
  1. COUNT(“*”)(推荐)
  2. COUNT(1)(推荐)
  3. COUNT(指定字段),不一定对(MyISAM存储中效率一样)
  • AVG = SUM COUNT永远成立

GROUP BY(分组)

基本使用

MySQL函数2_mysql自定义函数

#求各个部门的平均工资
SELECT department_id,AVG(salary)
FROM employees
GROUP BY department_id;

使用 多个列分组

MySQL函数2_mysql自定义函数

#求各个部门同一工种的平均工资
SELECT department_id,job_id,AVG(salary)
FROM employees
GROUP BY department_id,job_id;#没有先后之分
  • 非组函数的字段必须声明在GROUP BY中

  • GROUP BY在FROM和WHERE的后面,在ORDER BY和LIMIT的后面

GROUP BY中使用WITH ROLLUP

会多出一行(在最后),是总的平均值

不能用ORDER BY 排序

#求各个部门的平均工资
SELECT department_id,AVG(salary)
FROM employees
GROUP BY department_id WITH ROLLUP;

HAVING的使用(过滤数据)

MySQL函数2_mysql自定义函数

  • 过滤条件有聚合函数,必须用HAVING来替换
  • 过滤条件没有聚合函数,推荐用WHERE
  • HAVING必须声明在GROUP BY的后面
  • 使用HAVING的前提是使用了GROUP BY

基本使用

#查部门id是10,20,30,40四个部门最高工资超过10000的部门信息
方式一:推荐(效率高)
SELECT department_id,sum(salary)
FROM employees
WHERE department——id IN(10,20,30,40)
GROUP BY department_id
HAVING sum(salary) > 10000;

方式二:
SELECT department_id,sum(salary)
FROM employees
GROUP BY department_id
HAVING sum(salary) > 10000 and department——id IN(10,20,30,40);

WHERE和HAVING的比较

  • 适用范围:HARING适用范围更广
  • 没有聚合函数:WHERE效率高于HARING

MySQL函数2_mysql自定义函数

SELECT的执行过程

查询结构

#SQL92
SELECT...,...(存在组函数)
FROM ...,...
WHERE 多表的连接 AND 不包含聚合函数的过滤条件
GROUP BY...,...
HARING BY包含聚合函数的过滤条件
ORDER BY...,...(ASC  DESC)
LIMIT...,...

#SQL99
SELECT...,...(存在组函数)#2

FROM ... (LEFT  RIGHT)JOIN ...#1
ON多表的连接条件
(LEFT  RIGHT)JOIN ... 
ON 多表的连接条件
WHERE 不包含聚合函数的过滤条件
GROUP BY...,...
HARING BY包含聚合函数的过滤条件

ORDER BY...,..(ASC  DESC)#3
LIMIT...,...

SELECT执行顺序(执行每一步都会有一个虚拟表)

FROM->ON->(LEFT RIGHT JOIN)->WHERE->GROUP BY->HAVING->SELECT->DISTINCT->ORDER BY->LIMIT

SQL执行原理

同上

原文地址:https://www.cnblogs.com/wht-de-bk/archive/2022/03/05/15969557.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5462.html

(0)
上一篇 2023-05-08 13:30
下一篇 2023-05-08

相关推荐

  • 「2021」高频前端面试题汇总之JavaScript篇(上)「终于解决」

    「2021」高频前端面试题汇总之JavaScript篇(上)「终于解决」2021 高频前端面试题汇总之JavaScript篇,前端面试题汇总系列文章的JavaScript篇,长期更新,欢迎收藏、点赞!

    2023-03-02
    77
  • Python程序员的必备技能 – 将值按比例缩放

    Python程序员的必备技能 – 将值按比例缩放在数据分析领域,数据往往来自各种渠道,而这些数据的规模、取值范围等都可能不一样。有时候,为了进行更好的分析和可视化,需要将数据值进行比例缩放。

    2024-01-09
    60
  • Python List:高效处理数据的利器

    Python List:高效处理数据的利器在Python中,列表(List)是一种非常常用的数据结构,它可以用来存储一系列有序的元素。与字符串不同,列表中的元素可以是不同类型的,例如有整数、浮点数、字符串等等。在处理数据方面,列表的应用非常广泛,例如数据预处理、数据清洗、数据分析等等。本文将从多个方面阐述Python列表的使用方法和技巧,为大家介绍Python List这个高效处理数据的利器。

    2023-12-04
    61
  • SQL的多表联查

    SQL的多表联查SQL的多表联查 在奋斗,90在追求。勇往无前,斗志昂扬,激情澎湃。我们在坚定的毅志中一天天的长大,一天天的成熟。岁月蹉跎,只为追求此生无悔! 表关联 association 概念 表table代表了

    2023-04-21
    175
  • [MySQL] mysql中bitmap的简单运用

    [MySQL] mysql中bitmap的简单运用bitmap就是在一个二进制的数据中,每一个位代表一定的含义,这样最终只需要存一个整型数据,就可以解释出多个含义.业务中有一个字段专门用来存储用户对某些功能的开启和关闭,如果是传统的思维,肯定是建一个

    2022-12-22
    119
  • 包含python之jieba库使用的词条

    包含python之jieba库使用的词条自然语言处理(NLP)是机器学习重要分支之一,主要应用于篇章理解、文本摘要、情感分析、知识图谱、文本翻译等领域。而NLP应用首先是对文本进行分词,当前中文分词器有Ansj、paoding、盘古分词等多种,而最基础的分词器应该属于jieba分词器(比较见下图)。

    2023-11-27
    56
  • 百万级商品数据实时同步,查询结果秒出「终于解决」

    百万级商品数据实时同步,查询结果秒出「终于解决」前阵子老板安排了一个新任务,要建设一个商家商品搜索系统,能够为用户提供快速、准确的搜索能力,在用户输入搜索内容时,要能从商家名称和商品名称两个维度去搜索,搜索出来的结果,按照准确率排序,并按商家所属…

    2023-02-05
    101
  • Mariadb之日志相关配置 – Linux「终于解决」

    Mariadb之日志相关配置 – Linux「终于解决」前面我们聊到了mariadb的事务,以及事务隔离级别,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13198186.html;今天我们来聊一聊mariadb的

    2023-03-16
    89

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注