导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

请教:统计学生平均体重的SQL语法

turbochen 2003-01-17 05:23:35
有两个表,内容如下,它们之间以id字段相关联:
A表:
id name  weight
1 小陈 52
2 小王 58
1 小刘 53
...

B表:
id property value
1  班级 A
1 年龄    22
2 班级 B
2 年龄 25
1  班级 A
1 年龄    21

现在我要分班级统计每个班级学生的平均重量,该如何定SQL?
...全文
58 点赞 收藏 17
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCEO 2003-01-17
B表的id和property是复合键,不允许重复。
??

你的数据就是有重复的。

闪人了!


回复
hjhing 2003-01-17
turbochen 真乃信人
小弟在此多謝了!
回复
turbochen 2003-01-17
我忘了说明,B表的id和property是复合键,不允许重复。
回复
shuangyulove 2003-01-17
本来是很好写的语句,可你的结构????
回复
CCEO 2003-01-17
哦,以上数据还是不够,

A表:
id name  weight
1 小陈 52
2 小王 58
1 小刘 52
1 小X 49

B表:
id property value
1  班级 A
1 年龄    22
2 班级 B
2 年龄 25
1  班级 A
1 年龄    21
1  班级 A
1 年龄    23

回复
CCEO 2003-01-17
那说明你的测试数据不够

你把数据改成:

A表:
id name  weight
1 小陈 52
2 小王 58
1 小刘 52

B表:
id property value
1  班级 A
1 年龄    22
2 班级 B
2 年龄 25
1  班级 A
1 年龄    21


就三个人,你应该允许“小陈”和“小刘”一样重吧?!

回复
turbochen 2003-01-17
CCEO(): 你说上面两位都是错的,但我测试出来是对的。
那你有没有更好的解呢?
回复
CCEO 2003-01-17
都是错的,讲什么效率?
回复
turbochen 2003-01-17
从执行效率上看,tj_dns(愉快的登山者) 比 hjhing(winding) 的快,但我还是守一守信用,分数只加给hjhing(winding) ,

顺便问一下,有什么比较好的书可以提高写SQL的能力?
回复
hjhing 2003-01-17
老大,你是在測試別人的眼力嗎?
回复
CCEO 2003-01-17
A表:
id name  weight
1 小陈 52
2 小王 58
1 小刘 53
1 小X 51
...

B表:
id property value
1  班级 A
1 年龄    22
2 班级 B
2 年龄 25
1  班级 A
1 年龄    21
1  班级 A
1 年龄    21
....

不可能同班的不许同岁吧??
回复
CCEO 2003-01-17
表的设计无法苟同!

根本没有办法对应!!

能写出来的,不是魔鬼就是上帝!
回复
select B.value as 班级, AVG(A.weight) from A left join B
on A.id = B.id where B.property = '班级'
group by B.value
回复
hjhing 2003-01-17
select [value],AVG(weight)
from
(select distinct B.[id] ,B.[value] , A.weight
from B,A where B.[id] = A.[id] and B.[property] = '班级') as T
group by [value]
回复
turbochen 2003-01-17
我的表是1对多的关系,你先不要考虑有没有冗余。

我的分数只加给第一个给出正确答案的人。
回复
hjhing 2003-01-17
--- try:

select [value],AVG(weight)
from
(select B.[id] ,B.[value] , A.weight
from B,A where B.[id] = A.[id] and B.[property] = '班级') as T
group by [value]
回复
windindance 2003-01-17
你的表的关系是什么……我怎么觉得B表有明显的冗余呢?
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告