繁体   English   中英

SQL内部连接加总和

[英]sql inner join plus sum

有没有一种方法可以显示如下所示的输出以及每人的总金额分配。 在这种情况下,鲍勃·怀特(Bob White)总共有2个作业,其余1个。

我尝试通过assignments.codeassignment进行分组,但是没有用。

SELECT students.namestudent, assignments.homework, 
assignments.codeassignment, courses.codecourse, courses.namecourse
FROM students
INNER JOIN assignments
ON students.idstudent = assignments.idstudent
INNER JOIN courses
on assignments.codecourse = courses.codecourse;

output:
'Jack Brown', 'finnish assignment a', 1111, 123, 'math'
'Alice Black', 'finnish assignment b', 4444, 256, 'algebra'
'Bob White', 'finnish assignment c', 2222, 555, 'game project'
'Dan Purple', 'finnish assignment d', 3333,548, 'analysis'
'Bob White', 'finnish assignment c', 4444, 256, 'algebra'

您可以使用窗口功能:

SELECT s.namestudent, a.homework, a.codeassignment, c.codecourse, c.namecourse,
       COUNT(*) OVER (PARTITION BY s.namestudent)
FROM students s INNER JOIN
     assignments a
     ON s.idstudent = a.idstudent INNER JOIN
     courses c
     ONn a.codecourse = c.codecourse;

COUNT(*) OVER (. . .)是大多数数据库中可用的ANSI标准功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM