当前位置: 首页 > news >正文

分组查询 mysql_mysql基础-分组查询

1  语法:

select 分组函数,列(要求出现在 group by 的后边)

from 表

【where 筛选条件】

group by 分组的列表

【order by 子句】

注意:查询列表必须特殊,要求是分组函数和 group by 之后出现的字段。

1.1  特点

1.1.1  分组查询中的筛选条件分为两类

数据源                                     位置                             关键字

分组前筛选           原始表                            group by 子句的前面                where

分组后筛选           分组后的结果集              group by 子句的后面                having

a.分组函数做条件肯定是放在having子句中

b.能用分组前筛选的、就优先考虑使用分组前筛选

1.1.2  group by 子句支持单个字段分组,多个字段分组(多个字段之间用逗号隔开,没有顺序要求),表达式或函数(用的相对较少)。

1.1.3  也可以添加排序(排序放在整个分组查询的最后)。

2  简单的分组查询

b15bb0c09c8e8c504c52925e35e61f47.png

923397e8fbb69845a0182ba455faca49.png

3  添加筛选条件

9effd24c6c3b5db6aca26a0be9c43a8e.png

fc3cf667edebce5db5ddf023d2c8c36a.png

be03d473df425a7420727cb9ba57c6c0.png

4  添加复杂的筛选条件

60f874b347c8f6acf3f9a0256a1d5e41.png

b035774a2a18625f958607a53fd45658.png

87665d9988fdda59906c26203944bc12.png

a69783279b1f10b7fc6acf876c1454b0.png

5ead5a6318b1b3275ead3143e79a033a.png

12f2d614246ca1c83be0e816f78d4019.png

d06807d44ca83105cff7a75e40d2a9d7.png

a95d22224a58b3cbae07972182c8c70b.png

9b8f05ae190c410f07dea88665d14ffe.png

5  按多个字段分组

5d113804b853a67f05d6e5402772ac40.png

5e1a8d3523f20970ca1e2f5443da157a.png

添加排序

2b45c04d61f30bccc73581e30ba9f4e5.png

4d46ffc7c5d9d27009d554bc31816466.png

6  综合案例

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

SELECT MAX(salary),MIN(salary),AVG(salary),SUM(salary),job_idFROMemployeesGROUP BYjob_idORDER BY job_id;

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

SELECT MAX(salary)-MIN(salary) DIFFRENCEFROM employees;

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

SELECT MIN(salsry),manager_idFROMemployeesWHERE manager_id IS NOT NULL

GROUP BYmanager_idHAVING MIN(salary)>=6000;

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

SELECT dapartment_id,count(*),AVG(salary) aFROMemployeesGROUP BYdapartment_idORDER BY a DESC;

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

SELECT COUNT(*) 个数,job_idFROMemployeesGROUP BY job_id;

相关文章:

  • 夜已深
  • oracle从mysql抓数据_关于oracle数据库读取数据的三种方式
  • mysql查看表中最高价格_一个MySQL查询来查找两个表中的最高价和最低价?
  • 金科玉律
  • python 打开pytorch_pytorch学习(五)—图像的加载/读取方式
  • 本周技术关注[面向webapps运维]:你养着工作还是工作养着你?
  • python保持登录状态_Python-保持登录状态进行接口测试
  • 有人见过在Windows Server 2003下面出现这样的字体变形模糊的异常吗?
  • 华为p10多屏互动在哪_华为p10如何投屏到电视?手机还有这些使用技巧
  • 关于南沙新厂的弱电工程(设想中,未完)
  • java中文转编码_利用JAVA将中文转Unicode编码
  • 电脑工程师职责要求
  • HTTP错误代码解释
  • c java http_Java Http协议
  • 网络最全最详细的经典命令行
  • CSS盒模型深入
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • go append函数以及写入
  • Java 内存分配及垃圾回收机制初探
  • javascript数组去重/查找/插入/删除
  • Java-详解HashMap
  • js递归,无限分级树形折叠菜单
  • Laravel核心解读--Facades
  • leetcode46 Permutation 排列组合
  • Mybatis初体验
  • Mysql优化
  • nfs客户端进程变D,延伸linux的lock
  • spring security oauth2 password授权模式
  • 高度不固定时垂直居中
  • 观察者模式实现非直接耦合
  • 规范化安全开发 KOA 手脚架
  • 机器学习学习笔记一
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 问题之ssh中Host key verification failed的解决
  • 我的业余项目总结
  • 小李飞刀:SQL题目刷起来!
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • # 计算机视觉入门
  • #php的pecl工具#
  • #pragma once
  • (03)光刻——半导体电路的绘制
  • (LeetCode 49)Anagrams
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四)Controller接口控制器详解(三)
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)用.Net的File控件上传文件的解决方案
  • (转载)Google Chrome调试JS
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .bat批处理出现中文乱码的情况
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .Net 8.0 新的变化