我的数据库架构如下:如何执行以下SQL?
match_id,USER_ID,评级
匹配成对出现如
7, 2947, 5
7, 273, 4
在上述例子中为7匹配,用户2947被评为5由用户273的用户273通过用户2947.额定4如何能够执行产生以下输出
rater_id的查询时, rating,num_ratings
其中列出了评分者,他们相关的评级和评级数量。因此,例如,如果用户2947给了他10 4的和十5的我想看到:
2947,4,10
2947,5,11
我的数据库架构如下:如何执行以下SQL?
match_id,USER_ID,评级
匹配成对出现如
7, 2947, 5
7, 273, 4
在上述例子中为7匹配,用户2947被评为5由用户273的用户273通过用户2947.额定4如何能够执行产生以下输出
rater_id的查询时, rating,num_ratings
其中列出了评分者,他们相关的评级和评级数量。因此,例如,如果用户2947给了他10 4的和十5的我想看到:
2947,4,10
2947,5,11
将表与自身:
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
看起来像由双列组。看看这个tutorial
就像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.rating