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;
posted @   影的记忆  阅读(122)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示