首頁 資料庫 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教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
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