2009-06-19 104 views
0

我有一个名为评级,这种结构的MySQL表:MySQL查询帮助

ID名,用户名,等级,RATER,MONTH

我希望能够向用户展示的排名表由他们的平均订购当月评级。

例如:

1,鲍勃,10,丽塔,JUL

2,鲍勃,8,苏,JUL

3,丽塔,9,鲍勃,JUL

4,苏,4,丽塔,JUL

5,丽塔,10,苏07月

我想要一个SQL查询其禾ULD产生这些结果:

丽塔:9.5

鲍勃:9

苏:4个

任何想法吗?

非常感谢

奥利弗。

回答

2

假设一个月列是一个日期时间:

where LEFT(MONTHNAME(curdate()),3) = rating.month 
2
select username, avg(rating), month from RATING group by username,month 

看到你有':

select username, avg(rating) 
from rating 
where YEAR(curdate()) = YEAR(rating.month) 
and MONTH(curdate()) = MONTH(rating.month) 
group by username 

如果它是这个月的前3个字符,以替换WHERE语句JUL'作为你的月份,我假设它是一个varchar。如果你只是想为JUL结果:

select username, avg(rating) from RATING where month = 'JUL' group by username 
1
SELECT `username`, AVG(`rating`) AS average FROM RATING GROUP BY `username` 
+0

这是平均得分为所有的时间,而不是当前的月份? – Andomar 2009-06-19 10:30:09