新生关于group by子句
新生求教:关于group by子句
有表如下:
要求:计算每个人的总成绩
方法一:
方法二:
我经常用方法二,难道真的影响查询结果的准确?!!!
好担心,项目都写了一半了
------解决方案--------------------
select stuid,max(name),sum(score) as allscore from stuscore group by stuid
我一般这样写,姓名容易重名,学号不会重
------解决方案--------------------
是的,会影响的
你的第二个语句是根据stuid,name
这两个字段来分组的,如果name 有重名的情况就会出现错误结果
------解决方案--------------------
但是如果你能保证id 和name是一对一对应的,就没有问题
------解决方案--------------------
有表如下:
- SQL code
学生成绩表(stuscore): 姓名:name 课程:subject分数:score学号:stuid 张三 数学 89 1 张三 语文 80 1 张三 英语 70 1 李四 数学 90 2 李四 语文 70 2 李四 英语 80 2
要求:计算每个人的总成绩
方法一:
- SQL code
select distinct t1.name,t1.stuid,t2.allscore from stuscore t1, ( select stuid,sum(score) as allscore from stuscore group by stuid )t2 where t1.stuid=t2.stuid order by t2.allscore desc
方法二:
- SQL code
select stuid,name,sum(score) as allscore from stuscore group by stuid,name
我经常用方法二,难道真的影响查询结果的准确?!!!
好担心,项目都写了一半了
------解决方案--------------------
select stuid,max(name),sum(score) as allscore from stuscore group by stuid
我一般这样写,姓名容易重名,学号不会重
------解决方案--------------------
是的,会影响的
你的第二个语句是根据stuid,name
这两个字段来分组的,如果name 有重名的情况就会出现错误结果
------解决方案--------------------
但是如果你能保证id 和name是一对一对应的,就没有问题
------解决方案--------------------