首页 > 数据库 >SQL-分组聚合 - 单字段分组

SQL-分组聚合 - 单字段分组

时间:2024-12-04 21:12:44浏览次数:4  
标签:customer 班级 单字 score 分组 SQL id

在 SQL 中,分组聚合是一种对数据进行分类并对每个分类进行聚合计算的操作。它允许我们按照指定的列或字段对数据进行分组,然后对每个分组应用聚合函数,如 COUNT、SUM、AVG 等,以获得分组后的汇总结果。

举个例子:某个学校可以按照班级将学生分组,并对每个班级进行统计。查看每个班级有多少学生、每个班级的平均成绩。这样我们就能够对学校各班的学生情况有一个整体的了解,而不是单纯看个别学生的信息。

在 SQL 中,通常使用 GROUP BY 关键字对数据进行分组。

示例

假设有一个订单表 orders,包含以下字段:order_id(订单号)、customer_id(客户编号)、amount(订单金额)。数据如下:

order_id customer_id amount
1 A001 100
2 A002 200
3 A001 150
4 A003 50

1)使用分组聚合查询中每个客户的编号:

SELECT customer_id FROM orders GROUP BY customer_id

查询结果:

customer_id
A001
A002
A003

2)使用分组聚合查询每个客户的下单数:

SELECT customer_id, COUNT(order_id) AS order_num FROM orders GROUP BY customer_id

查询结果:

customer_id order_num
A001 2
A002 1
A003 1

题目

假设有一个学生表 student,包含以下字段:id(学号)、name(姓名)、class_id(班级编号)、score(成绩)。请你编写一个 SQL 查询,统计学生表中的班级编号(class_id)和每个班级的平均成绩(avg_score)。

id name age class_id score exam_num
1 鸡哥 25 1 2.5 1
2 鱼皮 18 1 400 4
3 热dog 40 2 600 4
4 摸FISH 2 360 4
5 李阿巴 19 3 120 2
6 老李 56 3 500 4
7 李变量 24 4 390 3
8 王加瓦 23 4 0 4
9 赵派森 80 4 600 4
10 孙加加 60 5 100.5 1
点击查看答案
select class_id, avg(score) as avg_score from student group by class_id

标签:customer,班级,单字,score,分组,SQL,id
From: https://www.cnblogs.com/zydow/p/18587190

相关文章

  • SQL-函数 - 时间函数
    在SQL中,时间函数是用于处理日期和时间的特殊函数。它们允许我们在查询中操作和处理日期、时间、日期时间数据,从而使得在数据库中进行时间相关的操作变得更加方便和灵活。常用的时间函数有:DATE:获取当前日期DATETIME:获取当前日期时间TIME:获取当前时间示例假设有一个订单表o......
  • php毕业设计服装购物商城在线购物系统电商系统电子商城线上购物系统购物网站计算机毕
    一.功能介绍用户前台功能:    前台主要包括网站首页、商品推荐、全部商品、热门商品、商品分类、商品资讯、评论、登录、注册、加入购物车、结算、个人中心等功能模块商品推荐、最新商品在商品推荐、热门商品模块,用户可以查看全部商品信息,选择商品进行添加购物车等......
  • SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试)
    SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试)在实际的项目开发中,我们往往需要同时连接多个数据源对数据进行处理。本文将详细介绍在SpringBoot下配合MybatisPlus如何连接多数据源,实例将会使用连接MySQL、SqlServer进行测试,可自行根据思路供自行连接Oracle、Po......
  • SQL-基础语法 - 条件分支
    条件分支casewhen是SQL中用于根据条件进行分支处理的语法。它类似于其他编程语言中的ifelse条件判断语句,允许我们根据不同的条件选择不同的结果返回。使用casewhen可以在查询结果中根据特定的条件动态生成新的列或对现有的列进行转换。举个例子:假设你是一位餐厅的服......
  • SQL-基础语法 - 截断和偏移
    我们先用一个比喻来引出截断和偏移的概念。假设你有一张待办事项清单,上面有很多任务。当你每次只想查看其中的几个任务时,会怎么办呢?1)你可以使用手指挡住不需要看的部分(即截断)2)根据任务的编号,直接翻到需要查看的位置(即偏移)在SQL中,我们使用LIMIT关键字来实现数据的截断和偏......
  • SqlServer运维——最大服务器内存
    1.关于最大服务器内存可以,MSSM数据库连接-->右键:服务器属性进行查看和配置1.对CPU的使用分配,可以选择SQLserver使用或者不使用某些CPU线程默认是勾选以下设置,一般不需要做什么设置自动设置所有处理器的处理关联掩码(P)自动设置所有处理器的I/O关联掩码(I)2.内存配置,通过......
  • DVWA sql注入(low)
    准备环境kali上开启容器并在物理机上启动直接爆列数1'orderby1#1'orderby2#1'orderby3#爆到三出错证明只有2列这样就很简单了,下面的步骤就直接套公式就行了爆信息1'unionselect1,database()frominformation_schema.tableswheretable_schema=dat......
  • windows系统下 重置mysql数据库的密码
    停掉mysql服务win+x按a进入管理员cmd,输入netstopmysql(mysql是服务名,不清楚的可以在服务中查看)2.输入mysqld爆红进入mysql安装目录输入./mysqld--console--skip-grant-tables报错要加入数据目录地址,输入.\mysqld--console--datadir="D:\Deve......
  • mysql服务无法启动
    问题场景当我打开navicat连接数据库的时候报错,说不能连接到数据库,如下图所示。我第一时间想到mysql服务可能没有启动,于是我打开任务管理器查看服务,果然发现mysql服务没有启动。然后我直接右键点击启动发现启动不了,于是我用管理员运行cmd命令行窗口输入netstartmysql启动mys......
  • h5 sqlite 操作封装
    参考文档错误码//数据库名称constnamesjk="sl"//存储路径constpath=`_doc/${name}.db`/**基本操作*查询数据库连接状态isOpenDatabase * 无参数* 返回truefalse***关闭数据库 closeDatabase* 无参数* Promise......