我现在有两个表。
表1Te:字段信息如下:
ID CreateTime score Name
表2DB:字段信息如下:
score
我现在要查询出来的结果是这样的:
对Te表我要 查询createTime介于一个时间段内 而且要以Name进行分组查询求这个组的score的平均值
select sum(*)/count(*) from Te where CreateTime between A and B group by name
现在我要再加一个查询功能。就是在这个组里面我要查询出来score超过了DB表中的score字段值的记录信息
怎么加进来呢?
哦,对了我是用MYSQL数据库进行操作的
表1Te:字段信息如下:
ID CreateTime score Name
表2DB:字段信息如下:
score
我现在要查询出来的结果是这样的:
对Te表我要 查询createTime介于一个时间段内 而且要以Name进行分组查询求这个组的score的平均值
select sum(*)/count(*) from Te where CreateTime between A and B group by name
现在我要再加一个查询功能。就是在这个组里面我要查询出来score超过了DB表中的score字段值的记录信息
怎么加进来呢?
哦,对了我是用MYSQL数据库进行操作的
where score > (select max(score) from DB)
ID CreateTime score Name
1 2008-11-03 13:30:47 10 a
2 2008-11-10 13:30:48 20 a
3 2008-11-11 13:30:48 30 c
4 2008-11-12 13:30:48 40 b
5 2008-11-13 13:30:48 10 c
6 2008-11-14 13:30:48 20 b 表2DB:字段信息如下:
score
15我现在要得到的结果如下:
name avg_score max_score chaoguodb
a 15 20 1
b 30 40 2
c 20 30 1
具体一点的数据哈哈。继续支持谢谢了各位朋友
form te a inner join (select Name,avg(score) as avg_score from te group by Name)
on a.Name=b.Name
where a.score>b.avg_score
group by a.name,b.avg_score从你的例子看不出和 表2DB 有什么关系。 以上SQL应该能产生你 6楼 的结果。
每人的平均分,每人的最高分,及超过自己平均分的次数
from (SELECT ttr.*,b2.score as newsc from ttr,b2
) a
group by name
多的话,速度较慢
表1Te:字段信息如下:
ID CreateTime score Name
1 2008-11-03 13:30:47 10 a
2 2008-11-10 13:30:48 20 a
3 2008-11-11 13:30:48 30 c
4 2008-11-12 13:30:48 40 b
5 2008-11-13 13:30:48 10 c
6 2008-11-14 13:30:48 20 b表2DB:字段信息如下:
score
15我现在要得到的结果如下:
name avg_score max_score chaoguodb
a 15 20 1
b 30 40 2
c 20 30 1
具体一点的数据哈哈。继续支持谢谢了各位朋友
说明这些数据来源:
其中的avg_score表示查询Te表的时候通过以name进行分组处理得到的分数。
max_score表示查询Te表的时候以name分组处理中的最大值
chaoguodb表示Te表中的score超过了DB中的score的数据。比如说a 它只有一个超过了15所以为1
from te a, DB b
group by a.name
问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)