gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章一句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  。

最后此篇关于一句Sql把纵向表转为横向表,并分别分组求平均和总平均值的文章就讲到这里了,如果你想了解更多关于一句Sql把纵向表转为横向表,并分别分组求平均和总平均值的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com