mysql中sql语句之分组(group by)

news2024/12/29 10:00:36

文章目录

  • 前言
  • 分组查询
    • 定义
    • 语法
      • 说明
    • group by使用
    • group by + group_concat()的使用
    • group by + 聚合函数的使用
    • group by + having的使用
    • group by + with rollup的使用
    • 分组查询小结

前言

今天遇到公司新来的小伙伴咨询问题,统计集团内部的在职员工与离职员工数量,如何写sql统计。

这个问题其实还是比较容易来实现,首先想到的就是分组(group by)以及count函数来实现,这里面也会用到case when语句的一些知识。

接下来,我们进入正题

分组查询

定义

分组查询:就是将我们要查询结果按照指定字段进行分组,字段中数据相等的分为一组。

语法

GROUP BY column_name [HAVING 条 件 表 达 式] [WITH ROLLUP]

说明

1、column_name : 是指按照指定字段的值进行分组规则。
2、HAVING 条 件 表 达 式: 用来进行过滤分组后的数据。
3、WITH ROLLUP:在所有记录的最后加上一条记录,显示select查询时聚合函数的统计和计算结果

group by使用

group by它可用于单个字段分组操作,也可用于多个字段分组操作

group by + group_concat()的使用

group_concat(column_name): 统计每个分组指定字段的信息集合,每个信息之间使用逗号进行分割

-- 根据isv_no字段进行分组,查询isv_no字段和分组的state字段信息
select isv_no,group_concat(state) from t_mch_info group by isv_no;

结果如下:
在这里插入图片描述

group by + 聚合函数的使用

-- 统计isv_no下有多少条数据
select isv_no,count(state) from t_mch_info group by isv_no;

group by + having的使用

having他的作用和where有类似功能,都是用来过滤数据的,但having是过滤分组数据的,只能用于group by

-- 用来统计isv_no下有数据条数大于3的
select isv_no,count(state) from t_mch_info group by isv_no HAVING count(state)>3;

group by + with rollup的使用

with rollup他的作用是:在最后记录后面新增一行,显示select查询时聚合函数的统计结果和计算结果

select isv_no,count(state) from t_mch_info group by isv_no with rollup;

结果如下:
在这里插入图片描述

分组查询小结

1、group by:他是根据指定的一个或者多个字段对数据进行分组操作;
2、group_concat(column):这个函数是统计每个分组指定的字段的信息集合;
3、group by:它在和聚合函数结合使用的时候, 聚合函数统计和计算的是每个分组的数据项;
4、having:是对分组的数据结果,进行条件过滤;
5、with rollup:他是指在最后记录后面新增一行,用来显示select查询时聚合函数的统计和计算结果值;

欢迎大家点击下方卡片,关注《coder练习生》

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

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

相关文章

负载不堵塞,稳定可靠,企业性能测试指南!

目录 前言: 基准测试 - 确认你的产品在正常使用条件下的性能 负载测试 - 确认你的产品在高负荷下的性能 压力测试 - 确认你的产品的极限性能 稳定性测试 - 确认你的产品在长时间高负荷下的表现 总结 前言: 在当今竞争激烈的商业环境中,…

我敢说,这是科普路由协议的最高境界

大家好,我是许公子。 路由协议,经常看我文章的小友都知道,给你们说过很多期了。 这是网络世界里,很重要的一个概念,总得来说,它负责将数据包从源节点传递到目的节点。 最近又有很多萌新关注过来&#xff…

C语言:计算n的阶乘(不考虑溢出)

题目: 从键盘输入一个值n,计算n的阶乘, 如:输入5,计算5的阶乘 --> 5! 1 * 2 * 3 * 4 * 5 思路: 第一步: 创建一个变量 ret ,用来存放每次相乘后的值, 因为 0 乘 任何…

uipath 实现连接pg数据库

1、下载ODBC 如需要使用UiPath连接数据库进行操作,需要先准备必需条件先安装ODBC。 postgresql ODBC下载链接:https://www.postgresql.org/ftp/odbc/versions/msi/ 下载最新的安装包即可。 2、配置ODBC 下载完pgsql ODBC的安装包直接打开压缩包进行…

实验篇(7.2) 07. 通过安全隧道访问指定网站 (SSL) ❀ 远程访问

【简介】通过前面的实验,我们已经了解了SSL VPN的隧道模式。FortiClient客户端拨号后,访问服务器IP的流量,会通过安全隧道到达远端防火墙,并访问DMZ接口下的服务器。那如果我想让更多的访问走安全隧道,但是又不确定是哪…

最受欢迎的十个开源大数据技术

导读大数据已然成为当今最热门的技术之一,正呈爆炸式增长。每天来自全球的新项目如雨后春笋般涌现。幸运地是,开源让越来越多的项目可以直接采用大数据技术,下面就来盘点最受欢迎的十大开源的大数据技术。 大数据已然成为当今最热门的技术之…

热烈庆祝兴业法拍网与中关村科技融资担保有限公司签订业务合作

6月1日,兴业法拍网与北京中关村科技融资担保有限公司签订“法拍贷”合作协议。 “法拍贷”是以法院房产拍卖为核心、线上平台拓宽拍卖渠道、保险公司提供阶段性保证、公证机构加大司法效力、银行提供全程金融服务的“14”创新合作模式。该模式汇聚五方合力让更多竞…

在本地Windows 11 系统的桌面版Docker上搭建PlantUML

文章目录 在本地Windows系统的桌面版Docker上搭建PlantUML简介步骤步骤 1:安装Docker Desktop步骤 2:启动Docker Desktop步骤 3:拉取PlantUML镜像步骤 4:运行PlantUML容器步骤 5:访问PlantUML Web界面 结论参考资料 结…

stable-diffusion-webui 更换 Python 版本

目录 一、原因二、解决方法 一、原因 stable-diffusion-webui 推荐版本是 Python 3.10 ,如果电脑中安装了其他版本到Python,会警告推荐使用Python 3.10版本。 官方安装教程 Automatic Installation on Windows Install Python 3.10.6 (Newer version of…

OBS如何做绿幕直播(滤镜实现去除绿色背景)

OBS如何做绿幕直播(滤镜实现去除绿色背景) 一、设备 推流电脑(i7及以上,16G内存,独显加分)不推荐笔记本和苹果电脑。摄像头(单反或摄像机需要配备采集卡和收音设备)。补光灯。稳定…

k8s概述

前言 通过linux基于cgroup,ns,及rootfs的学习,我们了解了基于容器技术原理。在大规模情况下,单单容器技术完全不够,k8s的出现就是解决 在大规模集群中存在各种各样的任务,任务之间又有着各样的关系。对于这些关系要如何处理优雅得…

tinkerCAD入门操作(4):使用对齐工具和工作平面帮助程序

tinkerCAD入门操作(4):使用对齐工具和工作平面帮助程序 介绍 在本课中,我们将建造一座简单的城堡。您将了解有关对齐工具、镜像和帮助程序工具的所有信息。 开始 您将使用的第一个工具是对齐工具。 无需使用鼠标仔细定位两个部分,对齐工具…

团队管理之性能实施团队日志6

一、从问题统计看进度风险 从统计来看,近三个星期过去 了,发现了 59 个问题。28 个是性能问题还需要再细分类型,现在这个还是粗了点,比如说配置问题、代码问题。 所以笼统说来除了这里的功能问题之外,其他的基本上都是…

对话中科易安市场经理:联网智能门锁之运行、运营与运维

大家好!我是中科易安市场部的市场经理,相信很多中科易安联网智能门锁的新老朋友对我并不陌生,或许我们没有面见,但是每一篇中科易安发布的原创推文皆出自我手。此刻,我想和中科易安的产品用户、客户以及媒体朋友们&…

weblogic 重置密码|修改密码

一:重置密码: 我本机的文件目录: /u01/wls12214/Middleware/user_projects/domains/wls_domain/ 第一步删除: DefaultAuthenticatorlnit.ldift (先对此文件备份,防止后续异常可复原) 删除此文件…

使用Leangoo领歌敏捷工具实施多团队规模化敏捷

多团队大规模敏捷的场景定义: 多个敏捷团队开发同一个大型产品,几十人,甚至几百人开发一个产品或解决方案。 在Leangoo领歌中创建多团队大规模敏捷项目: 多团队规模化敏捷的项目结构: 在Leangoo企业中创建项目&…

图解LeetCode——230. 二叉搜索树中第K小的元素

一、题目 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 二、示例 2.1> 示例 1: 【输入】root [3,1,4,null,2], k 1 【输出】1 2.2> 示例 2&…

数据库优化之常用的show variables、show status配置优化

文章目录 ⭐️ MySQL优化-配置优化1、show variables查看MySQL服务器配置参数1)查看及调整系统配置变量值2)查询缓存相关参数: 2、show status查看MySQL服务器运行状态值1)调整max_connections:2)调整back_…

chatgpt赋能python:Python可以烧录进硬件里吗?

Python可以烧录进硬件里吗? Python编程语言已经成为了越来越多的开发工程师的首选工具。这是一门易学易用的编程语言,以其灵活性、可读性和功能强大而受到广泛的青睐。因此,许多人都很自然地想知道这个问题:Python可以烧录进硬件…

公司大规模裁员的时间轴

正如我们常说的公司在大规模裁员之前是有很多征兆的,不是就拍怕脑袋决定的。 这次公司的裁员真的属于教科书级别的裁员,因此觉得记录下公司整个过程的时间轴是有意义的,希望能够给所有朋友有个参考。 也很想知道的是,如果是你&am…