为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

POPMUISE 2023-08-22 17:50:44
我有这个架构:Students(sid:int,名字:str,姓氏:str,年份开始:int)Majors(sid: int, Major: str)注意:一名学生可能有多个专业。Grades(sid:int,cid:int,学分:int,等级:int)注:sid,cid =外键,等级:A = 4,B = 3,C = 2,D = 1,F = 0。Courses(cid:int,number: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并返回这些值:[('安妮', '布朗', 2020, 1), ('杰克', '汤姆森', 2018, 3), ('雅各布', '麦卡锡', 2020, 2), ('贾马尔', '琼斯', 2019, 3), ('简', 'Doe', 2017, 2), ('约翰', 'Doe', 2017, 3), ('蒂姆', '伯顿', 2018, 3), ( “蒂娜”,“吉利根”,2019,3)]但显然这些是错误的,当我上传到 Gradescope 时,它给了我这些位于附图中的错误有什么想法我做错了吗?
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

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


查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信