首页 数据库 mysql教程 一句Sql把纵向表转为横向表,并分别分组求平均和总平均值

一句Sql把纵向表转为横向表,并分别分组求平均和总平均值

Jun 07, 2016 pm 06:00 PM
平均值

一句Sql把纵向表转为横向表,并分别分组求平均和总平均值,需要的朋友可以参考下。

效果如图所示:

测试sql语句如下:
代码如下:
declare @tab table(Class varchar(20),Student varchar(20),Course varchar(50),Quantity decimal(7,2));
insert into @tab(Class,Student,Course,Quantity) values('A班','张三','语文',60);
insert into @tab(Class,Student,Course,Quantity) values('A班','张三','数学',70);
insert into @tab(Class,Student,Course,Quantity) values('A班','张三','英语',80);
insert into @tab(Class,Student,Course,Quantity) values('A班','李四','语文',30);
insert into @tab(Class,Student,Course,Quantity) values('A班','李四','数学',40);
insert into @tab(Class,Student,Course,Quantity) values('A班','李四','英语',50);

insert into @tab(Class,Student,Course,Quantity) values('B班','王五','语文',65);
insert into @tab(Class,Student,Course,Quantity) values('B班','王五','数学',75);
insert into @tab(Class,Student,Course,Quantity) values('B班','王五','英语',85);
insert into @tab(Class,Student,Course,Quantity) values('B班','赵六','语文',35);
insert into @tab(Class,Student,Course,Quantity) values('B班','赵六','数学',45);
insert into @tab(Class,Student,Course,Quantity) values('B班','赵六','英语',55);



select * from @tab

select
(case when Grouping(Class)=1 then '总平均' when Grouping(Student)=1 then '' else Class end ) as Class
,(case when Grouping(Class)=1 then '' when Grouping(Student)=1 then '平均' else Student end) as Student
,avg(语文) as 语文
,avg(数学) as 数学
,avg(英语) as 英语
,avg(总分) as 总分
from (
select Class,Student
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student and Course='语文') as '语文'
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student and Course='数学') as '数学'
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student and Course='英语') as '英语'
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student) as '总分'
from @tab as t
group by Class,Student
) as tempTab
group by Class,Student,语文,数学,英语,总分 with rollup
having Grouping(语文)=1
and Grouping(数学)=1
and Grouping(英语)=1
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
平均值word公式是什么 平均值word公式是什么 Sep 19, 2023 pm 01:48 PM

平均值word公式是“=AVERAGE(ABOVE)”。具体计算平均值步骤:1、打开Word,并创建一个新的文档;2、在文档中,输入你要计算平均值的数据,每个数据占一行或一列。例如,可以在第一列输入数据;3、在数据的下方或右侧的一个空白单元格中,打开公式栏,并输入公式“=AVERAGE(ABOVE)”;4、按下Enter键,Word将计算并显示平均值。

自然数的平方平均值? 自然数的平方平均值? Sep 20, 2023 pm 10:29 PM

自然数平方的平均值是通过将n个自然数的所有平方相加,然后除以该数字来计算的。示例前2个自然数为2.5,12+22=5=>5/2=2.5。编程中有两种计算方法-使用循环使用公式使用循环计算自然数平方的平均值此逻辑通过查找所有自然数的平方来工作。通过从1到n循环找到每个的平方并添加到sum变量。然后将该总和除以n。计算自然数平方和的程序-示例代码 实时演示#include<stdio.h>intmain(){  intn=2; 

php数组求平均值的函数有哪些 php数组求平均值的函数有哪些 Jul 17, 2023 pm 04:03 PM

php数组求平均值的函数有:1、array_sum(),用于计算数组中所有值的总和,为了计算平均值,可以将数组中的所有值相加,然后除以数组元素的个数;2、array_reduce(),用于迭代数组并将每个值与一个初始值进行计算;3、array_mean(),用于返回数组的平均值,先计算数组的总和,并计算数组元素的个数,将总和除以数组元素的个数,即得到平均值。

给定一个奇数,求所有奇数的平均值 给定一个奇数,求所有奇数的平均值 Sep 03, 2023 pm 03:49 PM

奇数的平均数直到给定的奇数是一个简单的概念。您只需要找到直到该数字的奇数,然后将它们相加并除以该数字。如果要找到直到n的奇数的平均数。然后我们将从1到n找到奇数,然后相加,再除以奇数的数量。例子奇数的平均数直到9是5,即1+3+5+7+9=25=>25/5=5计算奇数的平均数直到n有两种方法,其中n是一个奇数使用循环使用公式程序查找到n为止的奇数的平均值,使用循环为了计算直到n的奇数的平均值,我们将把直到n的所有数字相加,然后除以直到n的奇数的个数。计算平均值的程序奇自然数直到n-示例代码

php怎么求一个一维数组的平均值 php怎么求一个一维数组的平均值 Dec 26, 2022 am 10:20 AM

php求一个一维数组的平均值的方法:1、新建一个php文件;2、创建一个数组;3、使用array_sum函数对数组内的元素求和;4、使用count函数计算数组元素的个数,然后将两个数进行相除即可求出平均值。

给定的偶数之前的所有偶数的平均值是多少? 给定的偶数之前的所有偶数的平均值是多少? Aug 25, 2023 pm 11:53 PM

为了找到给定偶数之前的偶数的平均值,我们将把给定数字之前的所有偶数相加,然后计算偶数的数量。然后将总和除以偶数的个数。示例直到10为止偶数的平均值为6,即2+4+6+8+10=30=>30/5=6有两种方法计算直到n的偶数的平均值,即偶数。使用循环使用公式计算直到n为止偶数的平均值的程序使用循环为了计算直到n的偶数的平均值,我们将把直到n的所有偶数相加,然后除以直到n的偶数的个数。计算程序直到n为止的偶自然数的平均值-示例代码 实时演示#include<stdio.h>intm

如何使用MySQL中的AVG函数计算某个字段的平均值 如何使用MySQL中的AVG函数计算某个字段的平均值 Jul 12, 2023 pm 03:28 PM

如何使用MySQL中的AVG函数计算某个字段的平均值在数据库管理系统中,处理数据是非常常见的任务。计算某个字段的平均值是其中一个常见的需求。MySQL提供了AVG函数,它可以帮助我们轻松地计算平均值。本文将介绍如何使用MySQL中的AVG函数,以及相关代码示例。首先,我们需要确保已经安装并配置了MySQL数据库。如果还没有安装,可以从MySQL官方网站下载并

计算长度为K的子数组,其平均值超过给定数组的中位数 计算长度为K的子数组,其平均值超过给定数组的中位数 Sep 02, 2023 am 08:09 AM

表达式“K长度子数组”适用于具有恰好K个元素的连续子数组。掌握和使用子数组对于解决动态规划、计算几何和数据分析等领域的各种问题至关重要。数组操作和统计中的另一个重要概念是中位数。数组的中位数表示元素按升序排序时位于中间的值。在元素个数为偶数的情况下,中位数是两个中心值的平均值。中位数构成了集中趋势的持久衡量标准,因为与平均值相比,它更不容易受到极端值或异常值的影响。本文试图研究确定一个给定数组中平均值超过中位数的K长度子数组数量的挑战。通过理解数据集的平均值和中位数之间的关系,我们可以深入探讨这

See all articles