首页 技术 正文
技术 2022年11月15日
0 收藏 851 点赞 3,763 浏览 1394 个字

group by分组函数,group by name将查询结果按照name进行分组,相同name的记录一组,配合聚合函数,显示每个name的情况。 

1,数据源

表A结构如下:

CREATE TABLE C
(
ID INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
classid INT,
sex VARCHAR(10),
age INT
)

–添加测试数据
    Insert into C(classid,sex,age) values(1,’男’,20)
    Insert into C(classid,sex,age) values(2,’女’,22)
    Insert into C(classid,sex,age) values(3,’男’,23)
    Insert into C(classid,sex,age) values(4,’男’,22)
    Insert into C(classid,sex,age) values(1,’男’,24)
    Insert into C(classid,sex,age) values(2,’女’,19)
    Insert into C(classid,sex,age) values(4,’男’,26)
    Insert into C(classid,sex,age) values(1,’男’,24)
    Insert into C(classid,sex,age) values(1,’男’,20)
    Insert into C(classid,sex,age) values(2,’女’,22)
    Insert into C(classid,sex,age) values(3,’男’,23)
    Insert into C(classid,sex,age) values(4,’男’,22)
    Insert into C(classid,sex,age) values(1,’男’,24)
    Insert into C(classid,sex,age) values(2,’女’,19)

2,group by

sql语句中,select classid from  A group by classid,首先从表A中查询出所有记录,再将记录按照classid分类,每一类为一条记录。

能否显示其他字段呢?select classid,age from  A group by classid,这样不可以的,因为按照classid分类,每一类classid记录中classid是相同的,对应一条记录,但是age不一定相同,一次一条记录无法显示多个age。因此不可以显示age字段,此处会出错。但是我们可以显示相同classid字段所有记录的平均年龄,这样就是多条记录缩减为一条记录,这就是聚合函数。如:select classid,avg(age) from  A group by classid,这是可以的。

3,group by 多个条件

如果group by后面多个条件,比如字段a1和a2,则将查询的所有记录,根据a1和a2分为k类显示。即a1+a2是一个新的字段。

4,如果需要对每个分组中记录做条件筛选,需要使用having。

我们首先根据where条件,将数据集select出来。之后跟group by结果集分组,之后利用having去除每个分组中不符合条件的记录。

having后面经常跟聚合函数,聚合函数不能跟在where后面,只能跟在having后面。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,491
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,493
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,294