2010-08-12 70 views
0

無法讓我的腦袋圍繞我正在開發的Facebook應用的排行榜部分的sql。這個想法是,在WHERE子句中傳遞的人物朋友名單(即2,1,3,4將是某人朋友的ID),因此排行榜是包括他們自己在內的某人朋友列表。sql中的分組問題

我想每個fb_id的最高分,並希望它降序 - 我仍然得到比某些fb_id的最大值低的分數。

SELECT fb_id, score FROM scores WHERE fb_id IN (2,1,3,4) GROUP BY fb_id ORDER BY score DESC; 

回答

2

你可以做:

SELECT fb_id, MAX(score) FROM scores WHERE fb_id IN (2,1,3,4) GROUP BY fb_id 

應該這樣做!

0

您需要使用MAX,你就不需要ORDER BY子句:

SELECT fb_id, 
MAX(score) AS 'MaxScore' 
FROM scores 
WHERE fb_id IN (2,1,3,4) 
GROUP BY fb_id 
+0

似乎像我一樣有得分降序 – chris 2010-08-12 14:09:17