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 2021大会,阿里云数据库技术大咖都聊了些什么?
简介: 3天9场干货分享,快来收藏吧! 10月18日~10月20日, 由国内知名IT技术社区主办的数据库技术交流盛会--DTCC 2021 (第十一届中国数据库技术大会)在京圆满落幕.大会以&quo ...
- Serverless Devs 2.0 开箱测评:Serverless 开发最佳实践
简介: 当下,Serverless 概念很火,很多同学被 Serverless 的优势吸引过来,比如它的弹性伸缩,免运维,高可用,资费少.但真正使用起来去落地的时候发现问题很多,大型项目如何组织函数 ...
- [ML] 科学编程语言 Octave 简单操作
octave 是和 matlab 类似的软件,可以方便的进行矩阵计算.图形绘图. matlab 收费,octave 是 gnu 开源软件. Mac 安装: $ brew install octave ...
- gitlab-ce-15.9.4安装
如果需要汉化版本,请根据汉化来选择版本 汉化包下载地址:https://gitlab.com/xhang/gitlab/ 1.依赖包安装 yum -y install policycoreutils- ...
- 理解FPGA内部的同步信号、异步信号和亚稳态
FPGA(Field-Programmable Gate Array),即现场可编程门阵列.主要是利用内部的可编程逻辑实现设计者想要的功能.FPGA属于数字逻辑芯片,其中也有可能会集成一部分模拟电路的 ...
- zabbix API笔记
python简单demo 输出id为111主机的主机群组信息 import requests import json request_headers = {"Content-Type&quo ...
- R1_ES知识图谱
业务量增加,优化..优化... 学习... 学习..... 阮一鸣,eBay Pronto 平台技术负责人,管理了 eBay 内部上百个 Elasticsearch 集群,数据规模超过 4000 节点 ...
- 【转载】超级系统工具Sysdig,比 strace、tcpdump、lsof 加起来还强大
可以用sysdig命令做很多很酷的事情 网络 查看占用网络带宽最多的进程 sysdig -c topprocs_net 显示主机192.168.0.1的网络传输数据 as binary: sysdig ...
- golang向上取整、向下取整和四舍五入
一.概述 官方的math 包中提供了取整的方法,向上取整math.Ceil() ,向下取整math.Floor() 二.用法 package main import ( "fmt" ...
- js与jquery实例-拖动改变列宽和行高
js与jquery实例-拖动改变列宽和行高 如何通过javascript或者jquery实现改变表格宽度或者行高的功能?今天就把这个功能代码分享给大家,绝对原创哦,代码少而且易懂.先看效果图: htm ...