【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,一经查实,立即删除!

相关文章

一维小波包的分解与重构程序深入学习——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)是一种行为型设计模式,允许一个对象在其内部状态改变时改变其行为。状态模式中类的行为是由状态决定的,在不同的状态下有不同的行为。 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂…

[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…

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

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

机器人离散化阻抗控制

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

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

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

算法---二分查找练习-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;使得特征能在机器学习算法上发生更好的…

Lvs+keepalived+nginx搭建高可用负载均衡集群

环境配置 master主机192.168.199.149&#xff0c;虚拟IP192.168.199.148 back备机192.168.199.150 真实服务器1 192.168.199.155 真实服务器2 192.168.199.156 关闭防火墙和selinux master配置&#xff08;149&#xff09; 添加虚拟IP ip addr add 192.168.199.148/24 …

手机备忘录隐藏功能:生日纪念日重要日子倒计时天数和提醒

在日常使用手机时&#xff0c;我们经常会用到备忘录、便签或笔记等记事工具来记录生活的点点滴滴&#xff0c;无论是购物清单、工作任务还是学习笔记。然而&#xff0c;你可能不知道&#xff0c;手机备忘录中其实隐藏着一些非常实用的功能&#xff0c;比如记录生日、纪念日、重…

Java设计模式 | 简单工厂模式

概述 需求 设计一个咖啡店点餐系统设计一个咖啡类&#xff08;Coffee&#xff09;&#xff1b;并定义其两个子类&#xff08;美式咖啡AmericanCoffee和拿铁咖啡LatteCoffee&#xff09;&#xff1b;再设计一个咖啡店类&#xff08;CoffeeStore&#xff09;&#xff0c;其具备…

Node.js常用命令:了解Node.js的核心命令和用法

学习目标&#xff1a; 理解Node.js和npm的概念及其在开发中的作用&#xff1b;掌握Node.js的核心命令&#xff0c;包括node、npm、npx等&#xff1b;学会使用node命令来执行JavaScript文件和模块&#xff1b;熟悉npm命令&#xff0c;包括安装、更新、卸载依赖包等操作&#xf…

【Ubuntu】常用命令

一般操作 pwd&#xff08;present working directory&#xff09; 显示当前的工作目录/路径。 cd (change directory) 改变目录&#xff0c;用于输入需要前往的路径/目录。 有一些特殊命令也很常用 : 解释 前往同一级的另一个目录 cd ../directory name cd .. 表示进入上…

STP环路避免实验(华为)

思科设备参考&#xff1a;STP环路避免实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 Spanning Tree Protocol&#xff08;STP&#xff09;&#xff0c;即生成树协议&#xff0c;是一种数据链路层协议。主要作用是防止二层环路&#xff0c;并自适应网络变化和故障…

unity学习(62)——emptyObject+昵称+血条

1.地图比较麻烦&#xff0c;先最后回头再做&#xff0c;地图是锦上添花的东西。 2.MapHandler中的使用技巧&#xff1a; 2.1.继承必须有&#xff0c;要不脚本绑不到相机上 2.2当场景被调用时触发函数OnLevelWasLoaded&#xff0c;这个和Start一样属于一个机制函数。 3.自己做…

长安链Docker Java智能合约引擎的架构、应用与规划

#功能发布 长安链3.0正式版发布了多个重点功能&#xff0c;包括共识算法切换、支持java智能合约引擎、支持后量子密码、web3生态兼容等。我们接下来为大家详细介绍新功能的设计、应用与规划。 在《2022年度长安链开源社区开发者调研报告》中&#xff0c;对Java合约语言支持是开…

51单片机—直流电机

1.元件介绍 2.驱动电路 3.电机调速 一般会保证一个周期的时间是一样的 应用&#xff1a; 1.LED呼吸灯 #include <REGX52.H>sbit LEDP2^0;void Delay(unsigned int t) {while(t--); } void main() {unsigned char Time,i;while(1){for(Time0;Time<100;Time){for(i0;…