MySQL GROUP BY 用法介绍
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;
MySQL GROUP BY 用法介绍的更多相关文章
- mysql group by 用法解析(详细)
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的 ...
- (转载)mysql group by 用法解析(详细)
(转载)http://blog.tianya.cn/blogger/post_read.asp?BlogID=4221189&PostID=47881614 mysql distinct 去重 ...
- 转:mysql group by 用法解析(详细)
group by 用法解析 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表. SELECT子句中的列名必须为分组列或列函数.列函数对于GROUP BY子 ...
- MySQL GROUP BY用法
背景介绍 最近在设计数据库的时候因为开始考虑不周,所以产生了大量的重复数据.现在需要把这些重复的数据删除掉,使用到的语句就是Group By来完成.为了进一步了解这条语句的作用,我打算先从简单入手. ...
- mysql group by 用法解析
group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表.SELECT子句中的列名必须为分组列或列函数.列函数对于GROUP BY子句定义的每个组各返回一个结果. ...
- Matcher的group()/group(int group)/groupCount()用法介绍
直接上代码: package com.dajiangtai.djt_spider.util; import java.util.regex.Matcher;import java.util.regex ...
- MySQL exists的用法介绍
有一个查询如下: 1 SELECT c.CustomerId, CompanyName 2 FROM Customers c 3 WHERE EXISTS( 4 SELECT Or ...
- mysql进阶(六)模糊查询的四种用法介绍
mysql中模糊查询的四种用法介绍 这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下. 下面介绍mysql中模糊查询的四种用法: 1 %: 表示任意0个或多个字符.可匹配任意类型 ...
- MySQL Group Replication 介绍
2016-12-12,一个重要的日子,mysql5.7.17 GA版发布,正式推出Group Replication(组复制) 插件,通过这个插件增强了MySQL原有的高可用方案(原有的Replica ...
- mysql group by的用法 注意
group by 用法: 官方的解释:select 后面的字段必须出现在 group by 后面, 除非是聚合,sum,或者count 但是如果 是多表联查, SELECT c.`name` A ...
随机推荐
- DTCC 2020 | 阿里云梁高中:DAS之基于Workload的全局自动优化实践
简介: 第十一届中国数据库技术大会(DTCC2020),在北京隆重召开.在12.23日性能优化与SQL审计专场上,邀请了阿里巴巴数据库技术团队高级技术专家梁高中为大家介绍DAS之基于Workload的 ...
- [Blockchain] Cosmos Starport 101 - 为你的新数据类型 生成代码
# 项目模板 $ starport app github.com/hello/planet --address-prefix your_new_prefix 项目目录结构的说明看这里: https:/ ...
- WPF 基于 .NET 5 框架和 .NET 6 的 SDK 进行完全单文件发布
本文来告诉大家如何基于 .NET 5 框架和 .NET 6 SDK 进行完全单文件发布,这是对 WPF 应用程序进行独立发布,生成的是完全单文件的方法 在之前的版本,尽管也是基于 .NET 5 框架的 ...
- NopCommerce 多数据库方案
本文转自:http://www.cnblogs.com/YUTOUYUWEI/p/5538200.html 有时候一个项目需要连接多个数据库,以实现不同数据库的数据在同个项目的共享. 如果已经安装了n ...
- K8s集群中部署SpringCloud在线购物平台(三)
五.SpringCloud概述 springcloud架构图 5.1 SpringCloud是什么? 官网: https://spring.io/projects/spring-cloud Sprin ...
- visual studio 2008的试用版评估期已结束(附无法使用产品密钥)的解决方法
visual studio 2008过了试用期后再次启动提示对话框:visual studio的试用版评估期已结束. 解决办法: 第一步,在"控制面板"中启动"添加删除程 ...
- 简说Python之函数
目录 Python的函数 函数的简单调用 函数传参 返回值 计算圆形面积 变量作用域 局部变量 全局变量 就像平时玩的积木,函数就是一个个成块的积木,可以组合你想要的任何形状. Python的函数 函 ...
- Kubernetes(K8S)安装
Kubermetes (K8S) 安装 参考文档: 官方文档: https://kubernetes.io/zh-cn/docs/concepts/overview/components/#node- ...
- Wordpress给每一个分类栏目定制不同的广告位
给分类栏目添加广告位,等同于添加自定义字段. 如果需要依据不同的栏目给广告位添加不同的tag来源,需要在模板页面中获取栏目的分类别名,读取不同的广告. 图1 如图1所示添加新的图片输入框 1. 实现的 ...
- python教程6.3-time模块datetime模块
由于time是基于Unix Timestamp,所以其所能表述的日期范围被限定在 1970 – 2038 之间.因此2038年后就不能用time了,建议使用datetime. time模块 有下面几 ...