我的数据库模式如下:
match_id、user_id、分级
匹配是成对的,例如:
7, 2947, 5
7, 273, 4在上面的匹配7的示例中,用户2947被用户273评为5。用户273被用户2947评为4级。如何执行可产生以下输出的查询
rater_id,评级,num_ratings
其中列出了评价者、其关联的评分和评分的数量。例如,如果用户2947给出了10个4和11个5,我希望看到:
2947,4,10
2947,5,11发布于 2011-03-27 11:06:36
将表连接到自身:
SELECT r1.user_id, r2.rating, count(*)
FROM Ratings r1
INNER JOIN Ratings r2 ON r2.match_id=r1.match_id AND r2.user_id<>r1.user_id
GROUP BY r1.user_id, r2.rating发布于 2011-03-27 11:08:21
看起来像一个两列的group by。看看这个tutorial
发布于 2011-03-27 11:52:00
正如Somid3所说,我认为它是两列分组。试试这个吧。
CREATE TABLE #match(match_id int,user_id int ,rating int)
SELECT m1.user_id,m1.rating, COUNT(m1.Rating)
FROM
#match m1
Group by m1.user_id,m1.ratinghttps://stackoverflow.com/questions/5446935
复制相似问题