SQL:一张表里面三个字段,姓名,课程,学分,姓名有重复的,一个学生有多门课程及成绩.
要你查询某个姓的学生(有多人同姓)成绩平均分大于75的学生. 我是这样想的: select 名字,avg(学分) from 表 where 名字 like '姓%' group by 名字 having avg(学分)>75 .如果同名同姓的时候是可以查出来的。 比如:姓名 课程 学分
张三 数学 76
张三 英语 80
张三 语文 90
张三 地理 88但是当姓一样,名字不一样时,就不行了。比如:
姓名 课程 学分
张三 数学 76
张四 英语 80
张五 语文 90
张三 地理 88可能我想的不对,也有人说这是无解。请各位朋友帮看看。谢谢了。
要你查询某个姓的学生(有多人同姓)成绩平均分大于75的学生. 我是这样想的: select 名字,avg(学分) from 表 where 名字 like '姓%' group by 名字 having avg(学分)>75 .如果同名同姓的时候是可以查出来的。 比如:姓名 课程 学分
张三 数学 76
张三 英语 80
张三 语文 90
张三 地理 88但是当姓一样,名字不一样时,就不行了。比如:
姓名 课程 学分
张三 数学 76
张四 英语 80
张五 语文 90
张三 地理 88可能我想的不对,也有人说这是无解。请各位朋友帮看看。谢谢了。
from 表
group by substring(名字,1,1) having avg(学分)>75
题目是“查询某个姓的学生(有多人同姓)成绩平均分大于75的学生.”
某个姓,应该就是特定了的,比如“张”lz的是对的,没发现什么问题
不清楚left和substring的截取效率,感觉前者会稍微高一些。没做实验。另外考虑复姓,比如"欧弟"和"欧阳震华",再复杂一点的"欧阳阳",如果数据录入时就不拆分,谁知道他姓欧还是姓欧阳呢 :-)