繁体   English   中英

对列中的总值求和时,SQL 查询未返回预期值

[英]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.

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