普通查询+聚合函数的使用(8个例子,数值和字符串的比较)

news2024/9/23 20:29:57

目录

回顾普通查询+聚合函数的使用

表数据

例子1

例子2

例子3

​​​​​​​例子4

例子5

例子6

例子7(数值和字符串的比较)

例子8


回顾普通查询+聚合函数的使用

之前我们介绍过聚合函数 --mysql分组查询 -- 聚合函数(介绍,使用),group by使用,分组聚合统计(使用,having介绍),where和having的对比,mysql一切皆表的概念-CSDN博客

表数据

--scott_data.sql · YoungMLet/scott_data - Gitee.com

例子1

查询工资>500或岗位为岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J

梳理一下,我们需要同时满足两种条件:

select * from emp where (sal>500 or job='MANAGER') and (left(ename,1)='J');

select * from emp where (sal>500 or job='MANAGER') and ename like 'J%';

例子2

按照部门号升序而雇员的工资降序排序

order by后面可以跟多列

select * from emp order by deptno asc , sal desc;
  • 最好还是把排序规则显式写出来 
  • ​​​​​​​

例子3

使用年薪进行降序排序

年薪=月薪*12+comm(奖金)

  • 但因为奖金允许为null,所以一旦相加,结果就变成了null(null不参与运算)
  • 所以可以使用ifnull(comm,0),将null值变为0

因为需要先拿出数据,才能排序,所以在select中使用的别名可以在order by中使用:

  • select ename,sal*12+ifnull(comm,0) as Annual_Salary from emp order by Annual_Salary desc;

​​​​​​​例子4

显示工资最高的员工的名字和工作岗位

之前在介绍聚合函数时,就已经讲过这类sql场景该如何查询:

  • 可以将select查出的结果作为筛选条件 -- 其实这就是子查询,mysql允许select嵌套在另一个sql语句中使用
select ename,job from emp where sal=(select max(sal) from emp) ;

例子5

显示工资高于平均工资的员工信息

这个和前一个是类似的问题

  • 因为本身没有平均工资这个数据,所以需要先计算平均工资,然后再以这个值作为基准值进行比较
select * from emp where sal>(select avg(sal) from emp);

例子6

显示每个部门的平均工资和最高工资

因为针对的是每个部门,而不是整个公司,所以我们需要对它进行分组

  • 以部门编号为分组条件
  • 分组=分表,分成多个子表后,我们对每个子表都进行聚合统计,然后一起显示
select deptno,avg(sal),max(sal) from emp group by deptno ; 
  • 如果觉得平均工资显示的值不太好看,可以使用format来控制其精度+添加千位分隔符,再重命名一下:
  • select deptno,format(avg(sal),2) avg_sal,format(max(sal),2) max_sal from emp group by deptno;

例子7(数值和字符串的比较)

显示平均工资低于2000的部门号和它的平均工资

要显示平均工资<2000的部门号:

  • 首先要计算出每个部门的平均工资,然后在这个基础之上进行筛选,跟上面类似:
  • select avg(sal) avg_sal from emp group by deptno having avg_sal<2000;
  • 然后将筛选出来的数据,显示出部门号和平均工资:

当我们添加格式化函数后,会发现查询的结果不符合我们的预期:

  • 是因为format将数值转换成了字符串
  • 当数值和字符串比较时,会将字符串又转回数字,而avg_sal中,字符串的第二位都是逗号,所以数值转回到这一位就结束了
  • 所以三行数据得到的数值分别变成 -> 2,2,1,都比2000小,所以全部显示

如果我们想要得到预期结果,不能在比较结果中使用别名:

  • select deptno,format(avg(sal),2) avg_sal from emp group by deptno having avg(sal)<2000;

例子8

显示每种岗位的雇员总数,平均工资

因为是每种岗位,所以需要对员工表根据岗位进行分组(即分表):

  • select job,count(*),avg(sal) from emp group by job;
  • 显示的时候,每行代表一个子表中统计出来的数据,分了多少张子表,就有多少行数据 
  • ​​​​​​​

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

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

相关文章

MATLAB基本语句

MATLAB语言为解释型程序设计语言。在程序中可以出现顺序、选择、循环三种基本控制结构&#xff0c;也可以出现对M-文件的调用(相当于对外部过程的调用)。 由于 MATLAB开始是用FORTRAN语言编写、后来用 C语言重写的&#xff0c;故其既有FORTRAN的特征&#xff0c;又在许多语言规…

基于JAVA+SpringBoot+Vue的医院资源管理系统

基于JAVASpringBootVue的医院资源管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; 哈…

基于SpringBoot的医院管理系统【附源码】

基于SpringBoot的医院管理系统&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概述 4系统概要设计 4.1概述 4.2系统结构 4.3.数据库设计 4.3.1数据库实体 4.3.2数据库设计表 5系统详细实现 5.1 医生模块的实现 5.1.…

音视频入门基础:FLV专题(3)——FLV header简介

一、引言 本文对FLV格式的FLV header进行简介&#xff0c;FLV文件的开头就是FLV header。 进行简介之前&#xff0c;请各位先从《音视频入门基础&#xff1a;FLV专题&#xff08;1&#xff09;——FLV官方文档下载》下载FLV的官方文档《video_file_format_spec_v10_1.pdf》和…

猫咪掉毛背后的隐秘原因?除毛除臭宠物空气净化器双管齐下!

作为一个二胎家庭&#xff0c;两只猫咪&#xff0c;除了卖萌加倍之外&#xff0c;拉屎需要排队之外&#xff0c;家里最不缺就是毛了。作为一个名鼻炎患者真的很难顶。感受一下40度高温的养猫人&#xff0c;给掉毛怪疏毛浮毛飘飘&#xff0c;逃不过的饮水机&#xff0c;各个角落…

wpf,工具栏上,最小化按钮的实现

工具栏上&#xff0c;最小化按钮的实现。工具栏做成的是用户控件。 用户控件的xaml <Button HorizontalAlignment"Right" Height"32" Click"MinimizeClick" /> 用户控件的cs代码 private void MinimizeClick(object sender, RoutedEven…

IDEA创建Web项目(详细版)

目录 1 新建Web项目 步骤如下 1 打开idea,选择新建项目 2 点击创建 3 点击项目结构&#xff0c;选择添加模块 ---web 2 配置Tomcat 步骤如下 1 点击Edit Configurations&#xff08;编辑配置&#xff09; 1.1 右上角当前文件下 选择编辑配置 1.2 点击菜单栏中run 选…

奔驰「进退」两难

合资车企&#xff0c;尤其是BBA为代表的传统豪华品牌&#xff0c;正在进入阵痛期。 9月14日&#xff0c;奔驰在华合资公司—腾势新能源发生工商变更&#xff0c;比亚迪受让前者剩余10%股份&#xff0c;并变更为旗下全资子公司。至此&#xff0c;这个由奔驰和比亚迪在2011年成立…

Python 从入门到实战25(模块)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了类继承的相关知识。今天我们将学习一下模块的…

Linux 进程间通信(管道)

目录 一.理解进程间通信 1.进程间通信的意义 2.进程间如何实现通信呢&#xff1f; 二.匿名管道 1.匿名管道的底层原理 引用计数的应用 2.匿名管道代码实现 a.代码的整体框架 b.写接口 c.读接口 d.子进程资源回收 3.匿名管道的官方接口 4.*匿名管道四种情况和五种特…

Leetcode 2246. 相邻字符不同的最长路径(一般树)树形dp C++实现

问题&#xff1a;Leetcode 2246. 相邻字符不同的最长路径 给你一棵 树&#xff08;即一个连通、无向、无环图&#xff09;&#xff0c;根节点是节点 0 &#xff0c;这棵树由编号从 0 到 n - 1 的 n 个节点组成。用下标从 0 开始、长度为 n 的数组 parent 来表示这棵树&#x…

数据结构——顺序表、链表

目录 前言 一&#xff0c;数据结构 1&#xff0c;什么是数据结构&#xff1f; 2&#xff0c;有什么类型&#xff1f; 二&#xff0c;顺序表 1&#xff0c;线性表 2&#xff0c;顺序表基本结构 3&#xff0c;动态顺序表的功能实现 三&#xff0c;链表 1&#xff0c;链…

Go 1.19.4 路径和目录-Day 15

1. 路径介绍 存储设备保存着数据&#xff0c;但是得有一种方便的模式让用户可以定位资源位置&#xff0c;操作系统采用一种路径字符 串的表达方式&#xff0c;这是一棵倒置的层级目录树&#xff0c;从根开始。 相对路径&#xff1a;不是以根目录开始的路径&#xff0c;例如 a/b…

torch.nn系列函数学习 --- Conv2d函数

该函数的官方文档&#xff1a; https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html#torch.nn.Conv2d torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride1, padding0, dilation1, groups1, biasTrue, padding_modezeros, deviceNone, dtypeNone)…

排序题目:将矩阵按对角线排序

文章目录 题目标题和出处难度题目描述要求示例数据范围 前言解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;将矩阵按对角线排序 出处&#xff1a;1329. 将矩阵按对角线排序 难度 5 级 题目描述 要求 矩阵对角线是一条从矩阵最上面行或者最左侧列中的某…

CentOS Linux教程(6)--CentOS目录

文章目录 1. 根目录2. cd目录切换命令3. CentOS目录介绍4. pwd命令介绍5. ls命令介绍5.1 ls5.2 ls -a5.3 ls -l 1. 根目录 Windows电脑的根目录是计算机(我的电脑)&#xff0c;然后C盘、D盘。 Linux系统的根目录是/&#xff0c;我们可以使用cd /进入根目录&#xff0c;然后使…

共享打印机,局域网搜不到

如果共享打印机后&#xff0c;局域网内其余机器检索不到 1. 排查 是否启用来宾账户&#xff08;Guest&#xff09; 2. 网络和共享中心->更改高级共享设置->启用网络发现、启用文件和打印机共享、关闭密码保护共享 排查基本可以解决搜索不到打印机问题

Transformer动画讲解

**Transformer工作原理**** **一、**** ******GPT的核心是Transformer******** *GPT* &#xff1a; **GPT&#xff08;Generative Pre-trained Transformer&#xff09;**** ****是一种基于单向Transformer解码器的预训练语言模型&#xff0c;它通过在大规模语料库上的无监督…

MatrixOne 助力某电信运营商构建低成本高性能车联网管理系统

客户基本情况 该电信运营商在物联网领域深耕多年&#xff0c;致力于为企业和个人提供全面的物联网解决方案&#xff0c;包括智能连接、设备管理、数据采集与分析等核心服务。凭借其强大的网络覆盖和技术优势&#xff0c;该运营商为各行业提供高效、安全、可靠的物联网服务&…

风速传感器一文浅谈 了解自然的力量

产品概述 本产品主要采用优质聚合物碳纤维为原材料&#xff0c;具有良好的防腐、防侵蚀等特点&#xff0c;能够保证仪器长期使用不起锈&#xff0c;同时配合内部顺滑的轴承系统&#xff0c;确保了信息采集的准确性。外型小巧轻便&#xff0c;便于携带和组装&#xff0c;三杯设…