2009-06-19 284 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