sql 实现数据库计算总分并排序

wangwffgqeg 2009-12-21 11:00:20
有两个表一个student 表 表中有(number,name,sex,class,age,tel,address,remark)全部为字符串类型 字段 course表 表中有(number,math,english,datastruct,java)为double类型number为字符串 字段 需要查询出两个表中的所有字段并加上总分和平均分字段 按总分降序
sql没有学好自己写的sql语句太过于复杂这是我写的
select *, sum(english+math+java+datestruct) as 'sum',avg(english+math+java+datestruct)/4 as 'avg' from student,course where student.number=course.number group by student.number,name,sex,class,born_date,tel,address,remark,english,math,java,datestruct,course.number order by sum desc
太长了
这条sql语句要怎么写更好一点呀???
...全文
1280 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
keepkey 2009-12-22
  • 打赏
  • 举报
回复
2楼的好像写错了吧,avg可不是这么用的
[SQL code]
select s.*, sum(c.math,c.english,c.datastruct,c.java) as 'sum' ,
avg(c.math,c.english,c.datastruct,c.java) as 'avg'
from student s full join course c
on s.number = c.number
order by sum desc
[SQL code]
blliy117 2009-12-21
  • 打赏
  • 举报
回复

select ss.*,sc.* from student ss,
(select s.number as number, sum(english+math+java+datestruct) as 'sum',avg(english+math+java+datestruct)/4 as 'avg' from student s,course c where s.number=c.number group by s.number ) sc
where ss.number = sc.number order by sc.sum desc

michaellufhl 2009-12-21
  • 打赏
  • 举报
回复
这个sql不算复杂吧。
以目前2个table的结构和关系,不如并成1个:) table(number,name,sex,class,age,tel,address,remark,,math,english,datastruct,java)

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧