一句Sql把纵向表转为横向表,并分别分组求平均和总平均值
一句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

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

平均值word公式是“=AVERAGE(ABOVE)”。具體計算平均值步驟:1、開啟Word,並建立一個新的文件;2、在文件中,輸入你要計算平均值的數據,每個數據佔一行或一列。例如,可以在第一列輸入資料;3、在資料的下方或右側的一個空白儲存格中,開啟公式欄,並輸入公式「=AVERAGE(ABOVE)」;4、按下Enter鍵,Word將計算並顯示平均值。

自然數平方的平均值是透過將n個自然數的所有平方相加,然後除以該數字來計算的。範例前2個自然數為2.5,12+22=5=>5/2=2.5。程式設計中有兩種計算方法-使用循環使用公式使用循環計算自然數平方的平均值此邏輯通過查找所有自然數的平方來工作。透過從1到n循環找到每個的平方並添加到sum變數。然後將該總和除以n。計算自然數平方和的程式-範例程式碼 即時示範#include<stdio.h>intmain(){ intn=2;

php數組求平均值的函數有:1、array_sum(),用於計算數組中所有值的總和,為了計算平均值,可以將數組中的所有值相加,然後除以數組元素的數量;2 、array_reduce(),用於迭代數組並將每個值與一個初始值進行計算;3、array_mean(),用於返回數組的平均值,先計算數組的總和,併計算數組元素的個數,將總和除以數組元素的個數,即得到平均值。

奇數的平均數直到給定的奇數是一個簡單的概念。您只需要找到直到該數字的奇數,然後將它們相加並除以該數字。如果要找出直到n的奇數的平均數。然後我們將從1到n找到奇數,然後相加,再除以奇數的數量。例子奇數的平均數直到9是5,即1+3+5+7+9=25=>25/5=5計算奇數的平均數直到n有兩種方法,其中n是一個奇數使用循環使用公式程式查找到n為止的奇數的平均值,使用循環為了計算直到n的奇數的平均值,我們將把直到n的所有數字相加,然後除以直到n的奇數的個數。計算平均值的程式奇自然數直到n-範例程式碼

php求一個一維數組的平均值的方法:1、新建一個php檔;2、建立一個陣列;3、使用array_sum函數對陣列內的元素求和;4、使用count函數計算陣列元素的個數,然後將兩個數進行相除即可求出平均值。

為了找到給定偶數之前的偶數的平均值,我們將把給定數字之前的所有偶數相加,然後計算偶數的數量。然後將總和除以偶數的個數。範例直到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函數,它可以幫助我們輕鬆計算平均值。本文將介紹如何使用MySQL中的AVG函數,以及相關程式碼範例。首先,我們需要確保已經安裝並配置了MySQL資料庫。如果還沒有安裝,可以從MySQL官方網站下載並

表達式「K長度子數組」適用於具有恰好K個元素的連續子數組。掌握和使用子數組對於解決動態規劃、計算幾何和數據分析等領域的各種問題至關重要。數組操作和統計中的另一個重要概念是中位數。數組的中位數表示元素按升序排序時位於中間的值。在元素個數為偶數的情況下,中位數是兩個中心值的平均值。中位數構成了集中趨勢的持久衡量標準,因為與平均值相比,它更不容易受到極端值或異常值的影響。本文試圖研究確定一個給定數組中平均值超過中位數的K長度子數組數量的挑戰。透過理解資料集的平均值和中位數之間的關係,我們可以深入探討這
