sql语句中的group by啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句中的group by啥意思相关的知识,希望对你有一定的参考价值。

一、sql语句中的groupby是:GROUP
BY
语句用于结合合计函数,根据一个或多个列对结果集进行分组。
二、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啥意思的主要内容,如果未能解决你的问题,请参考以下文章

sql语句中的groupby是啥意思?

sql中group by 是啥意思啊?请教谢谢

SQL数据库中查询语句Order By和Group By有啥区别

sql语句中的group by要怎么用!!

SQL 子句“GROUP BY 1”是啥意思?

SQL数据库中查询语句Order By和Group By有啥区别