[数据库]SQL中GroupBy的常见使用方法.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[数据库]SQL中GroupBy的常见使⽤⽅法.
前⾔
今天逛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
结果如下:
⼤概就是这么多了, 如果再有其他的情况会再次更新的.。

相关文档
最新文档