首页 > 数据库 >MySQL GROUP BY 用法介绍

MySQL GROUP BY 用法介绍

时间:2024-06-07 11:38:01浏览次数:10  
标签:cus name column1 用法 分组 MySQL GROUP null table

MySQL 中 GROUP BY 用法

简介

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。

  • 可以把 分组理解成 Excel 中的分组。
  • 把 合计函数理解成 Excel 中的求和、求平均值等。

语法

SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2
ORDER BY column1, column2;
  • column1, column2:要进行分组统计的列。
  • aggregate_function(column3):对列column3进行合计函数运算。
  • table_name:表名。
  • condition:条件语句,筛选出符合条件的内容。
  • GROUP BY column1, column2:对列column1和column2进行分组。
  • ORDER BY column1, column2:对结果集进行排序。

示例

Demo 数据库

id city name cus_name
1 深圳 供应商 客户
2 深圳 供应商2 客户
3 广州 供应商3 客户1
4 广州 供应商 客户四
5 深圳 供应商 客户
6 深圳 供应商2 客户
7 广州 供应商3 客户1
8 深圳 供应商 null
9 深圳 供应商2 null
10 广州 供应商3 null

简单分组 根据 name 分组

select name from table_name group by name;

带条件分组 根据 name 分组,并筛选出 cus_name 不为 null 的记录

select name from table_name where cus_name is not null group by name;

带条件分组 根据 name 分组,并筛选出 cus_name 不为 null 的记录,并按照 name 进行排序

select name from table_name where cus_name is not null group by name order by name;

带条件分组 根据 name 分组,并筛选出 cus_name 不为 null 的记录,并按照 name 进行排序,并统计 cus_name 的数量

select name, count(cus_name) from table_name where cus_name is not null group by name order by name;
  • 注意:count() 返回的是查询条数,默认是不计算 null 值,解决这个问题需要在 count() 函数中指定 null
select name, count(IFNULL(cus_name, 0)) from table_name where cus_name is not null group by name order by name;

标签:cus,name,column1,用法,分组,MySQL,GROUP,null,table
From: https://www.cnblogs.com/yidejiyi/p/18236903

相关文章

  • mysql 5.7以后需要设置安全导向
    //mysql_secure_installation安全配置向导[root@youxi1~]#mysql_secure_installationSecuringtheMySQLserverdeployment.Enterpasswordforuserroot://输入root密码The'validate_password'pluginisinstalledontheserver.Thesubsequentstepsw......
  • 新服务器从0到1安装mysql8.0(保姆级教程)
    前提:可以输入命令检测是否安装了mysqlrpm-qa|grepmysql没有安装是什么都没有输出的1.如果系统上已安装有maraidb数据库,需要卸载mariadb yumremovemariadb*-yrm-rf/etc/my.cnfrm-rf/var/lib/mysql/2.如果系统已安装有其他版本的mysql,需提前卸载清空环境r......
  • mysql安装
    mysql安裝下载ZIP包,地址:https://downloads.mysql.com/archives/community/,确保选择与你的Windows系统位数(32位或64位)相匹配的版本。解压ZIP包:将下载的ZIP文件解压到你选择的安装目录。你可以使用Windows内置的解压工具或第三方工具如WinRAR、7-Zip等。创建数据目录:在解压后的My......
  • 解释Servlet过滤器的作用和用法
    Servlet过滤器在JavaWeb开发中扮演着重要的角色,主要用于拦截客户端(如浏览器)与服务器资源之间的请求和响应,并进行相应的处理。以下是关于Servlet过滤器的作用和用法的详细解释:作用请求和响应的拦截:Servlet过滤器可以动态地拦截客户端发送的请求和服务器返回的响应,以便在请求......
  • 【MySQL】LEFT JOIN 踩坑
     一、问题发现:主查询功能发现两条一样的记录,但是审批状态不一样,一个已通过,一个待审核 主表付款表:CREATETABLE`pur_or_payment`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'系统编码初始值为“1”',`pa_code`varchar(32)NOTNULLCOMMENT'付款编号',......
  • 基于java ssm vue mysql志愿者招募网站(源码+lw+部署文档+讲解等)
    前言......
  • 基于java ssm vue mysql协同过滤算法的电影推荐系统(源码+lw+部署文档+讲解等)
    前言......
  • Springboot计算机毕业设计疫苗注射小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在全球疫苗接种工作日益重要的背景下,为了更有效地推进疫苗接种进程,提高接种效率和用户体验,疫苗注射小程序的开发显得尤为关键。随着移动互联网的普及......
  • 37.MySQL进阶知识
    MySQL进阶知识【一】试图1)概念视图就是通过查询得到一张虚拟表,然后保存下来,下次可以直接使用在计算机科学中,视图(View)是一种虚拟表,其内容是一个或多个基本表的查询结果。视图可以用于简化复杂查询、隐藏敏感数据、实现数据安全性和完整性约束等视图可以是虚拟的,也可......
  • 36.PyMySQL模块
    PyMySQL模块【一】简介DB-API:Python标准数据库规范为DB-API,DB-API定义了一系列必须的对象和数据库操作方式,以便为各种数据库系统和数据库访问程序提供一致的访问接口。PyMySQL:纯python实现的模块,可以与Python代码兼容衔接,也几乎兼容MySQL-python遵循Python数据库AP......