转载:SQL中Group By 的常见使用方法
SQL中Group By 的常见使用方法
前言
今天逛java吧看到了一个面试题, 于是有了今天这个文章, 回顾下Group By的用法.
题目如下:
Select name from table group by name having count(*) = 10;
解释: 根据(by)一定的规则进行分组(Group) 所以就是根据题中的name进行分组, 然后把name相同的数量为10的记录都查找出来.
示例:
表结构:
执行结果:
如果再添加一条记录: wangmeng. 那么 就查询不到了. 只有 相同username count 为10的才会被查询出来.
1、概述
Group By 从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
2,原始表
3,实例说明
示例1
SQL语句如下:
select category, sum(count) as 数量之和 from groupbyDemo group by category
结果如下:
看到结果大家都应该知道是怎样回事吧? 实际上就是分类汇总.
示例2
SQL语句如下:
SELECT category, SUM(COUNT) AS 数量之和, summary FROM groupByDemo GROUP BY category ORDER BY category desc
结果如下:
说明, 这里加的 查询summary 会显示数据的第一条记录.
4,Group By与聚合函数
常用的聚合函数: count, sum, avg, max, min
示例1
SQL语句如下:
SELECT category, AVG(COUNT) AS 平均值 FROM groupByDemo GROUP BY category;
结果如下:
注意:这里的平均值是根据category 分组后数据的平均值,而不是全表数据的平均值。
5, Having与Where的区别
(1)where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
(2)having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。
示例1
SQL代码:
SELECT category, SUM(COUNT) AS 数量之和 FROM groupByDemo GROUP BY category HAVING SUM(COUNT) > 18
结果如下:
示例2
SQL语句:
SELECT category, SUM(COUNT)FROM groupByDemo WHERE COUNT > 10 GROUP BY category HAVING SUM(COUNT) > 8
结果如下:
相关文章
- SQL Server R2 2008中的SQL Server Management Studio 阻止保存要求重新创建表的更改问题的设置方法
- Linux启动新进程的几种方法汇总
- PostgreSQL (慢SQL|数据库整体变慢|性能抖动) 数据库性能分析与优化方法
- SQL语句优化的30种方法
- sql server 2012远程链接的方法及步骤
- SQL SERVER导入数据到ORACLE的方法总结
- 如果是除去末尾特定字符或字符串:TrimEnd方法性能优于Remove方法
- ElasticSearch插件es-head安装及使用:es集群设置了密码时的访问方法
- SQL SERVER 不能修改表结构、列类型 解决方法
- Database之SQL:SQL之over partition by开窗函数的简介、使用方法(求各班级内各自排名/求各班级内第一名/求各班级内分数递增和等案例解析)之详细攻略
- 真香,Python “手绘风格”数据可视化方法汇总
- 【Android 安全】DEX 加密 ( 多 DEX 加载 | 65535 方法数限制和 MultiDex 配置 | PathClassLoader 类加载源码分析 | DexPathList )
- SoC嵌入式软件架构设计II:没有MMU的CPU虚拟内存管理的设计和实现方法
- 中职网络安全攻防之SSH服务加固方法
- SQL Server 中关于EXCEPT和INTERSECT的使用方法
- nmap基本使用方法
- Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项)
- 《论文阅读》开放域对话系统——外部信息融入对话的方法
- shell动态生成.sql文件的方法进阶2