gpt4 book ai didi

sql - 更高级别聚合的总和

转载 作者:行者123 更新时间:2023-12-04 14:22:43 24 4
gpt4 key购买 nike

我在下面的代码中定义了一个表,我希望将所有值的总和作为 ALLDays,在这种情况下为 Ajan 36 和 Sam 21。如何修改以下查询以获取该值,我不允许使用windows函数。我可以通过让另一个查询按学生分组并加入两者来实现要求,但有没有办法修改下面的查询以满足要求。任何帮助深表感谢。

DECLARE @Table 
TABLE(Student varchar(50),
subject varchar(50)
,days int)

Insert into @Table
values('Ajan','English',8),('Ajan','Math',9),('Ajan','Science',7),('Ajan','English',5),('Ajan','Math',4),('Ajan','Science',3),
('Sam','English',7),('Sam','Math',6),('Sam','Science',8)


select student,subject,sum(days) as SubjectDays,'' as AllDays from @Table
group by student,subject

最佳答案

如果您不能使用窗口函数,那么一种替代方法是为学生和学科级别的天数总和使用两个单独的子查询。

select t1.student, t1.subject, t1.SubjectDays, t2.AllDays
from
(
select student, subject, sum(days) as SubjectDays
from @Table
group by student, subject
) t1
inner join
(
select student, sum(days) as AllDays
from @Table
group by student
) t2
on t1.student = t2.student;

关于sql - 更高级别聚合的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53846955/

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