[英]SQL query not returning expected values when summing total values in a column
我有这个架构:
Students
(sid: int, firstName: str, lastName: str, yearStarted: int)
Majors
(sid:int,专业:str)
注意:一个学生可能有多个专业。
Grades
(sid:int,cid:int,credits:int,grade:int)
注:sid、cid=外键,等级:A=4、B=3、C=2、D=1、F=0。
Courses
(cid:int,编号:int,教授:str,专业:str,年份:int,学期:str) 注意:cid 跨学期是唯一的。 学期是夏季、秋季或春季。 如果两个课程具有相同的编号 + 专业,则它们是相同的
使用这个模式,我需要“提供 SQL 查询,该查询将生成每个学生的名字、姓氏、年份和学分总数。你不应该考虑 0 级的课程,因为这些对应于失败的课程”
到目前为止,我有这个:
def q4(self):
query = '''
select s.firstName, s.lastName, s.yearStarted,count(*)
from students s, grades g
where s.sid = g.sid
and g.grade >0
group by s.firstName, s.lastName, s.yearStarted
'''
self.cur.execute(query)
all_rows = self.cur.fetchall()
return all_rows
并返回这些值:
[('Anne', 'Brown', 2020, 1), ('Jack', 'Thomson', 2018, 3), ('Jacob', 'McKarthy', 2020, 2), ('Jamal', 'Jones' ', 2019, 3), ('Jane', 'Doe', 2017, 2), ('John', 'Doe', 2017, 3), ('Tim', 'Burton', 2018, 3), ( '蒂娜','吉利根',2019 年,3)]
但显然这些是错误的,当我上传到 Gradescope 时,它给了我位于附加图像中的这些错误
任何想法我做错了什么?
我已经想出了答案。 感谢@ChristianSloper 帮助我
def q4(self):
query = '''
select s.firstName, s.lastName, s.yearStarted,count(*) as cnt
from students s, grades g
where s.sid = g.sid
and g.grade >0
group by s.sid, s.yearStarted
order by s.yearStarted
desc
'''
self.cur.execute(query)
all_rows = self.cur.fetchall()
return all_rows
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.