[数据库]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;

结果如下: 

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

结果如下:

大概就是这么多了, 如果再有其他的情况会再次更新的. 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏算法channel

SQL|语句执行逻辑

01 SQL SQL,脚本查询语言,处理代码的顺序不是按照脚本语言的顺序,这点是不同于其他编程语言的最明显特征。 SQL语言常见的比如,Mysql,HiveQ...

38070
来自专栏java一日一条

SQL Server优化之SQL语句优化

2. ON: 对vt1表应用ON筛选器只有满足 join_condition 为真的行才被插入vt2

25820
来自专栏java达人

mysql explain详解

对于经常使用mysql的兄弟们,对explain一定不会陌生。当你在一条SELECT语句前放上关键词EXPLAIN,MySQL解释它将如何处理SELECT,提供...

194100
来自专栏从ORACLE起航,领略精彩的IT技术。

Oracle之SQL优化专题01-查看SQL执行计划的方法3.1 dbms_xplan.display_cursor(null,null,'allstats last')3.2 dbms_xplan.

51450
来自专栏测试开发架构之路

分分钟 搞懂 各种类型的关联

在测试工作中,有时需要测试数据库数据经过sql计算后的结果是否满足某一功能查询得到的返回值。 针对某些需要功能需要联查多张表,此时 关联 的作用就异常重要了,而...

31450
来自专栏数据之美

explain 深入剖析 MySQL 索引及其性能优化指南

0.SQL标准的执行流程(select) (8) SELECT (9) DISTINCT (11) <TOP_specification> <select_...

35260
来自专栏lgp20151222

mysql explain用法和结果的含义

explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。

20010
来自专栏杨建荣的学习笔记

关于查询转换的一些简单分析(三) (r3笔记第69天)

关于查询转换,已经讨论了视图合并和子查询解嵌套,还有谓词推进和物化视图查询重写也是查询转换中不可或缺的部分。 -->谓词推进 这个术语听起来高大上,有点故弄玄虚...

287110
来自专栏乐沙弥的世界

SQL 基础-->创建和管理表

(列名 数据类型 [ default 默认值] [ 约束条件] [ , ......] )

5610
来自专栏数据和云

又见程序媛 | 从索引的创建角度分析热门“面试题”

关于周一 Eygle 在文章《千头万绪:从一道面试题看数据库性能和安全的方方面面》讲到的 SELECT* FROM girls WHERE age BETWEE...

16840

扫码关注云+社区

领取腾讯云代金券