【Mysql数据库基础03】分组函数(聚合函数)、分组查询

分组函数(聚合函数)、分组查询

  • 1 分组函数
    • 1.1 简单的使用
    • 1.2 是否忽略null值
    • 1.3 和关键字搭配使用
    • 1.4 count函数的详细介绍
    • 1.5 练习
  • 2 分组查询Group by
    • 2.1 简单的分组查询
    • 2.2 练习
  • 3 格式投票:yum:

1 分组函数

1.1 简单的使用

  1. COUNT(expression):计算符合指定条件的行数。常用于计算记录数量。

  2. SUM(expression):对指定列的值求和。通常用于计算数值型字段的总和。

  3. AVG(expression):计算指定列的平均值。常用于计算数值型字段的平均值。

  4. MIN(expression):计算指定列的最小值。用于找出某一列中的最小值。

  5. MAX(expression):计算指定列的最大值。用于找出某一列中的最大值。

select sum(salary) as,count(salary) as 个数,round(avg(salary),2) as 平均,max(salary) as 最高,min(salary) as 最低
from employees;

在这里插入图片描述

1.2 是否忽略null值

null+任意值=null

select sum(commission_pct),avg(commission_pct)
from employees;

1.1的分组函数都忽略null值

1.3 和关键字搭配使用

select count(distinct salary) as 有几种工资
from employees;

1.4 count函数的详细介绍

统计行数

select count(*)
from employees;

1.5 练习

在这里插入图片描述
1

selectmax(salary) as 最大值, min(salary) as 最小值, avg(salary) as 平均值, sum(salary) as 总和
from employees;

2

select DATEDIFF(max(hiredate),min(hiredate)) as DIFFERENCE
from employees;

3

select count(*) as 员工个数
from employees
where department_id=90;

2 分组查询Group by

select
from
where
group by
order by

2.1 简单的分组查询

1.查询每个工种的最高工资

select max(salary),job_id
from employees
group by job_id;

2.查询哪个部门的员工个数>2

select count(*),department_id
from employees
group by department_id
having count(*)>2;

3.查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资

select max(salary),job_id
from employees
where commission_pct is not null
group byjob_id
having max(salary)>12000;

4.查询领导编号>102的每个领导手下的最低工资>5000的领导编号是哪个,以及其最低工资

select manager_id,min(salary)
from employees
where manager_id>102
group by manager_id
having min(salary)>5000;

2.2 练习

1.查询各job_id的员工工资的最大值,最小值,平均值,总和,并按job_id升序

select job_id,max(salary),min(salary),avg(salary),sum(salary)
from employees
group by job_id
order by job_id asc;

2.查询员工最高工资和最低工资的差距(DIFFERENCE)

select max(salary)-min(salary) as DIFFERENCE
from employees;

3.查询各个管理者手下员工的最低工资,其中最低工资不能低于6000,没有管理者的员工不计算在内

select manager_id,min(salary)
from employees
where manager_id is not null
group by manager_id
having min(salary)>=6000;

4.查询所有部门的编号,员工数量和工资平均值,并按平均工资降序

select department_id,count(*) as 员工数量,avg(salary)
from employees
group by department_id
order by avg(salary) desc;

5.选择具有各个job_id的员工人数

select job_id,count(*) as 员工人数
from employees
group by job_id;

3 格式投票😋

在这里插入图片描述

题外话,有一个格式投票,大家认为哪种好看呢
格式1.

select employee_id
from employee;

格式2.

selectemployee_id
fromemployee;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/756823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《C++新经典对象模型》之第6章 对象构造语义学

《C新经典对象模型》之第6章 对象构造语义 6.1 继承体系下的对象构造6.1.1 对象的构造顺序6.1.2 虚函数6.1.3 构造函数中对虚函数的调用06.01.cpp 6.2 对象复制语义学与析构函数语义学6.2.1 对象的默认复制行为6.2.2 拷贝赋值运算符与拷贝构造函数6.2.3 禁止对象的拷贝构造和赋…

一维小波包的分解与重构程序深入学习——Matlab

绘制上述图的matlab程序为: clear all; close all; load noisdopp; xnoisdopp; wptwpdec(x,3,db1,shannon) %返回小波包树,设置采用的熵为shannon plot(wpt); %% 学习目标:一维小波包的分解和重构深入学习 %% 获取小波树上某个节点的小…

代码随想录day21(1)二叉树:平衡二叉树(leetcode110)

题目要求:判断一棵树是否为平衡二叉树 思路:递归地比较左右子树,只要有一棵子树不满足条件就说明这棵树不是平衡二叉树。本题采用迭代法较为复杂。 leetcode实战: 代码实现: 递归: 迭代:

python失物招领系统-安卓-flask-django-nodejs-php

对于本失物招领 的设计来说, 它是应用mysql数据库、安卓等技术动态编程以及数据库进行努力学习和大量实践,并运用到了 建设中在整个系统的设计当中,具体根据网上失物招领的现状来进行开发的,具体根据用户需求实现网上失物招领网络…

Java 设计模式系列:行为型-状态模式

简介 状态模式(State Pattern)是一种行为型设计模式,允许一个对象在其内部状态改变时改变其行为。状态模式中类的行为是由状态决定的,在不同的状态下有不同的行为。 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂…

ES进程除了kill之外,有什么优雅关闭的方式吗?

问题 Linux环境中,Elasticsearch 8的进程除了kill之外,有什么优雅关闭的方式吗? 具体方式 在Linux环境中,Elasticsearch(ES)进程可以通过多种方式实现优雅关闭,这种方式允许它完成必要的清理…

[Labtools 27-1429] XML parser encountered a problem in file

平台:Vivado2108.3 最近在使用vivado的debug过程中发现,编译好工程后打开open hardware manager出现如下错误。 [Labtools 27-1429] XML parser encountered a problem in file E:/githome/xxxx/hw_1/hw.xml at line 1 : XML character encoding not su…

逐笔成交、委托数据的因子计算

3.2 逐笔成交数据的因子计算 逐笔成交数据包含的信息很丰富,可以构建很多中高频因子。以下为逐笔成交的样例数据:利用逐笔成交数据中的买卖订单号,可以将其合并为单笔订单成交数据,并从单笔订单的角度区分大小单和主买卖方向等。本…

智能合约语言(eDSL)—— 使用rust实现eDSL的原理

为理解rust变成eDSL的实现原理,我们需要简单了解元编程与宏的概念,元编程被描述成一种计算机程序可以将代码看待成数据的能力,使用元编程技术编写的程序能够像普通程序在运行时更新、替换变量那样操作更新、替换代码。宏在 Rust 语言中是一种功能&#x…

机器人离散化阻抗控制

机器人离散化阻抗控制是一种控制策略,它结合了阻抗控制的思想与离散化方法,以实现对机器人运动与外力之间动态关系的精细调节。这种控制方法旨在使机器人在与环境交互时能够表现出期望的阻抗特性,从而实现对接触力和位置的精确控制。 在离散…

opencv逐帧获取视频图片

背景 由于我要做一个深度学习方向的计算机视觉项目,需要一些数据集来进行训练,我便想尝试捕获视频中的图片用来标注。 注意事项 如果视频中的场景单一,那么使用该视频获取的数据集训练出的模型面对其他场景的泛化能力就会受到限制。为了提…

自动化单元测试 Automatic Test Generation

自动化单元测试 Automatic Test Generation Parasoft C/Ctest / wing / VectorCast https://patricegodefroid.github.io/public_psfiles/talk-issta2010.pdf 一、自动化测试技术 软件研发生命周期的各个阶段都有自动化测试技术的存在,并且对提升测试效率有着至…

STM32—控制蜂鸣器(定时器)

目录 1 、 电路构成及原理图 2 、编写实现代码 main.c tim_irq.c 3、代码讲解 4、烧录到开发板调试、验证代码 5、检验效果 此笔记基于朗峰 STM32F103 系列全集成开发板的记录。 1 、 电路构成及原理图 定时器中断是利用定时器的计数功能(向上计数或向下计…

虚拟DOM是什么以及React 和Vue中有何区别

虚拟 DOM(Virtual DOM)是一种编程概念,其中 UI 的状态被保存在内存中,作为一个虚拟的节点树(或者说是 JavaScript 对象),然后通过一个叫做 “对比(diffing)” 的过程来更…

算法---二分查找练习-3(山脉数组的顶峰索引)

山脉数组的顶峰索引 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;点这里 2. 讲解算法原理 初始化两个指针 left 和 right&#xff0c;分别指向数组的起始位置和结束位置。 进入循环&#xff0c;循环条件为 left < right。 在每次循环中&…

Visual Studio - 添加快捷键图标

Visual Studio - 添加快捷键图标 1. Text Editor Toolbar Options -> Add or Remove Buttons -> Customize2. Toolbars3. Commands -> Debug4. Add Command...References 1. Text Editor Toolbar Options -> Add or Remove Buttons -> Customize 2. Toolbars B…

机器学习-05-特征工程

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中特征工程部分。 参考 机器学习之特征工程详解 特征工程&#xff08;Feature Engineering&#xff09; 特征工程是指使用专业的背景知识和技巧处理数据&#xff0c;使得特征能在机器学习算法上发生更好的…

Python数据分析与可视化笔记 三 了解数据 数据分类 集中趋势 离散程度 相关性测量 数据缺失 噪声 离群点

数据分为定性数据和定量数据。 定性数据包括两个基本层次&#xff0c;即定序(ordinal)和定义(nominal)层次。定序变量是指该变量只是对某些特性的“多少”进行排序&#xff0c;但各等级之间的差别不确定。例如评价一个事物有“好”、“一般”、“不好”三个等级&#xff0c;但各…

深入剖析Apache Kafka Partition:结构、策略与影响

引言 Apache Kafka作为一款高性能、分布式的消息系统&#xff0c;其出色的吞吐量和持久化能力在大数据领域备受青睐。而Partition作为Kafka架构中的重要基石&#xff0c;不仅决定了系统的可扩展性和并行处理能力&#xff0c;而且对消息的有序性、可用性和容错性起到关键作用。…

认识DDR3

DDR&#xff1a;双倍速率同步动态随机存储器&#xff0c;特点为掉电无法保持数据&#xff0c;时钟上升沿和下降沿都会传输数据&#xff0c;突发长度伪8&#xff0c; 它的存储方式可以通过行地址&#xff0c;列地址&#xff0c;和bank数来确定&#xff0c; DDR的容量为&#x…