sql语句中的group by啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句中的group by啥意思相关的知识,希望对你有一定的参考价值。
一、sql语句中的groupby是:GROUPBY
语句用于结合合计函数,根据一个或多个列对结果集进行分组。
二、sql语句group
by的高级语法:
1、写上一个创建表的
sql语句.
当然,我们也可以用设计图创建;
2、select
*
from
student,我们输入一条查询语句,显示出我们刚刚插入的所有数据;
3、select
stuname,COUNT(*)
from
student
group
by
stuname。从上面的结果我们不难看出,我们根据学生姓名进行了分组,另一种说法其实就是把重复的过滤了,把学生表中的姓名那一列用group
by分组,并且利用聚合函数(count) 统计每个姓名出现的次数。
Sql语句中有很多技巧,一般除了我们初学时的增删改查,还有其他很多。安装的时候也一定要记得看一下自己的操作系统是多少位.你是32位操作系统的就安装32位的Sqlserver
版本不限制,2005、2012都可以。 参考技术A GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
举几个简单例子
成绩表(姓名,课程,成绩)
1、去重复,同distinct、查找有多少个人的记录(按姓名分组、排重)
2、取每个人有多少条记录(按姓名分组、统计)
3、取有成绩记录为2条的人(按姓名分组、配合having使用)
4、取每个人的总成绩(按姓名分组、合计)
5、取每个人的最高成绩(按姓名分组、取最大max/最小min/平均avg值) 参考技术B 分类汇总的时候用。group
by
:表示按字段分组。例如:分别计算男性用户和女性用户的平均年龄。select
性别,avg(年龄)
as
average
from
表名
group
by
性别
SQL语句中的Group by的学习
背景:学习clickhouse的时候遇到了group by语句,官方文档看了半天没看懂,查了其他资料大致明白了语句的作用
概述:一张表 infos 有id、name、age三个字段,我想将名字重复的人算作一个人然后计算他们总共的年龄怎么办?(场景很脑瘫,做个说明罢了)
id | name | age |
1 | 张三 | 12 |
2 | pbuff | 20 |
3 | pbuff | 11 |
解决方案:可以这样
select name,sum(age) from infos group by name
原理解释:
首先select语句将三个字段都选择出来了,然后group by name将name相同的内容字段内容合并成一个,同时对应的id和age也要合并在一起,但是呢?一个位置不可能对应对个值,所以除了name字段其他字段都是多个值,这样SQL会报错,这时候为了将多个值进行处理我们需要用到一些聚合函数,例如:
sum() 用于计算多个值得总和 count() 用于计算出现的次数 grouparray() 用于将多个字段聚合成数组 .......
select语句执行的时候:
id | name | age |
1 | 张三 | 12 |
2 | pbuff | 20 |
3 | pbuff | 11 |
group by name之后:
id | name | age |
1 | 张三 | 12 |
2 3 |
pbuff |
20 11 |
然后对于age字段使用了sum()聚合函数之后:
id | name | age |
1 | 张三 | 12 |
2 |
pbuff |
31 |
以上是关于sql语句中的group by啥意思的主要内容,如果未能解决你的问题,请参考以下文章