MySQL ——group by子句使用with rollup

news2025/1/19 2:32:57

     group by 子句使用with rollup关键字之后,具有分组加和的功能。即:在所有的分组记录之后,自动新增一条记录,从全局计算所有记录的数据。

0 问题描述

   求出每年的学生平均成绩,及历史至今的平均成绩,结果保留两位小数。

1 数据准备

create table rollup_test
(
  name varchar(8)   COMMENT'',
  year int COMMENT'',
  score int COMMENT''
)CHARACTER SET utf8 COLLATE utf8_general_ci;

insert into rollup_test
values ('a',2016, 85),
       ('b',2016, 45),
       ('c',2016, 90),
       ('a',2015, 75),
       ('b',2015, 90);

2 数据分析

  完成代码如下:

select `year`,
        round(avg(score) ,2) as avg_score
from rollup_test group by `year`
union all
select '历史至今' as `year`,
       round(avg(score) ,2) as avg_score
from rollup_test

方式二:利用group by with rollup 替换union all进行简化

select `year`,
        round(avg(score) ,2) as avg_score
from rollup_test
group by `year`
with rollup

由输出结果可知,with rollup 会自动新增一条记录:

year   avg_score
null      77.00

结果与下列代码等价

select  '历史至今' as `year`,
           round(avg(score) ,2) as avg_score
from rollup_test

再借助函数ifnull 或 coalesce() 空字段赋值

上述代码继续优化为:

select  coalesce (`year`,'历史至今') as `year`,
        round(avg(score) ,2) as avg_score
from rollup_test
group by `year`
with rollup

 输出结果为:

3 小结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1441692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习系列——(十一)回归

引言 在机器学习领域,回归是一种常见的监督学习任务,它主要用于预测数值型目标变量。回归分析能够通过对输入特征与目标变量之间的关系建模,从而对未知数据做出预测。 概念 回归是机器学习中的一种监督学习方法,用于预测数值型目…

HarmonyOS 创建components目录 定义全局自定义组件导出供整个项目使用

之前我的文章 harmonyOS 自定义组件基础演示讲解 我们讲解了 自定义组件的基础用法 但是 我们是写在单个page文件中的 这样 我们跨文件使用就很不友好了 如下图 指向 ets目录下 创建一个目录 按我们 前端开发以往的习惯 这个目录要叫 components 专门放组件集合的地方 然后 按…

Windows Server 2025 Hyper-V 新变化

今天简单跟大家聊聊Windows Server 2025 Hyper-V一些新功能新变化,具体如下: 在 VM 之间共享 GPU 随着图形处理器的重要性日益增加,特别是由于它们在 AI 应用程序中的核心作用,Hyper-V 中对 GPU 的现有支持已不再足够。到目前为…

GPT-4模型中的token和Tokenization概念介绍

Token从字面意思上看是游戏代币,用在深度学习中的自然语言处理领域中时,代表着输入文字序列的“代币化”。那么海量语料中的文字序列,就可以转化为海量的代币,用来训练我们的模型。这样我们就能够理解“用于GPT-4训练的token数量大…

【MySQL】MySQL表的增删改查(基础)

MySQL表的增删改查(基础) 1. CRUD2. 新增(Create)2.1 单行数据全列插入2.2 多行数据 指定列插入 3. 查询(Retrieve)3.1 全列查询3.2 指定列查询3.3 查询字段为表达式3.4 别名3.5 去重:DISTINCT…

数据结构——单向链表和双向链表的实现(C语言版)

目录 前言 1. 链表 1.1 链表的概念及结构 1.2 链表的分类 2. 单链表接口实现 2.1 数据结构设计与接口函数声明 2.2 创建结点,打印,查找 2.3 尾插,头插,尾删,头删 2.4 插入或删除 2.4.1在指定位置后 2.4.2在…

一文讲透Python函数中的形式参数和实际参数

函数参数包括形式参数和实际参数,简称形参和实参。其中形式参数即是在定义函数时函数后面括号中的参数列表(parameterlist),比如上一个帖子的示例中的width, length;实际参数则是调用函数时函数后面括号中的参数值&…

【OrangePi Zero2的系统移植】OrangePi Zero2 SDK说明

一、使用环境要求 二、获取Linux SDK 三、首次编译完整SDK 基于OrangePi Zero2的系统移植 之前我们讲解香橙派的使用时, 都是直接在香橙派上进行代码编译, 但在实际的项目开发过程中,更多 的还是使用交叉编译环境进行代码的编译。再编译完成…

学习Android的第八天

目录 Android ImageView 图像视图 ImageView 的基本使用 src属性和background属性的区别 范例 解决 anndroid:blackground 属性拉伸导致图片变形的方法 设置透明度的问题 范例 android:src 和 android:background 结合 范例 Java 代码中设置 blackground 和 src 属性…

【C语言自定义类型详解进阶】结构体(补充结构体的对齐和位段,一口气看完系列,央妈都点赞的博文)

目录 1.结构体 1.1 结构的基础知识 1.2 结构的声明 1.2.1特殊的声明(匿名结构体类型) 1.3结构体变量的定义 1.4关于匿名结构体类型的补充 1.5结构体的自引用 1.6结构体变量的初始化 2.结构体内存对齐(重点) 2.1偏移量补…

B2080 计算多项式的值(洛谷)

题目描述 假定多项式的形式为 … x1,请计算给定单精度浮点数 x 和正整数 n 值的情况下这个多项式的值。多项式的值精确到小数点后两位,保证最终结果在 double 范围内。 输入格式 输入仅一行,包括 x 和 n,用单个空格隔开。 输…

数据结构 - 线索树

一、 为什么要用到线索二叉树? 我们先来看看普通的二叉树有什么缺点。下面是一个普通二叉树(链式存储方式): 乍一看,会不会有一种违和感?整个结构一共有 7 个结点,总共 14 个指针域&#xff0c…

Web前端框架-Vue(初识)

文章目录 web前端三大主流框架**1.Angular****2.React****3.Vue**什么是Vue.js 为什么要学习流行框架框架和库和插件的区别一.简介指令v-cloakv-textv-htmlv-pre**v-once**v-onv-on事件函数中传入参数事件修饰符双向数据绑定v-model 按键修饰符自定义按键修饰符别名v-bind(属性…

速过计算机二级python——第9讲 详解第 2 套真题

第9讲 详解第 2 套真题 基本编程题【15 分】简单应用题【25 分】综合应用题【20 分】**问题 1**【10 分】:**问题 2【10 分】:**基本编程题【15 分】 考生文件夹下存在一个文件 PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:【5 分】题目: import __________ b…

【数据结构与算法】力扣刷题记之 稀疏数组

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《数据结构与算法:初学者入门指南》📘&am…

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书添加模块UI设计实现

锋哥原创的PyQt6图书管理系统视频教程: PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…

ClickHouse的优缺点和应用场景

当业务场景需要一个大批量、快速的、可支持聚合运算的数据库,那么可选择ClickHouse。 选择ClickHouse 的原因: 记录类型类似于LOG,读取、运算远远大于写入操作选取有限列,对近千万条数据,快算的运算出结果。数据批量…

LiteFlow规则引擎框架

LiteFlow规则引擎框架 Hi,我是阿昌,今天介绍一个规则引擎框架,LiteFlow; 一、前言 那首先得知道什么是规则引擎?规则引擎是 一种用于自动化处理业务规则的软件组件。 在软件行业中,规则引擎通常用于解决…

HTML+CSS+JS网页设计

文章目录 作品介绍一、代码演示1.登录、注册,获取当前时间2.轮播图3.家乡简介4.热门景点5.特色美食6.页尾 二、效果图总结 作品介绍 HTML页面主要由:登录、注册跳转页面,轮播图,家乡简介,热门景点,特色美食…