如何执行以下SQL?

如何执行以下SQL?,sql,Sql,我的数据库架构如下所示: 匹配id、用户id、等级 比赛是成对进行的 7, 2947, 5 7, 273, 4 在上述匹配7的示例中,用户2947被用户273评为5。用户273被用户2947评为4。如何执行生成以下输出的查询 评级者id、评级、数字评级 其中列出了评级者、相关评级和评级数量。例如,如果用户2947给出了10个4和11个5,我希望看到: 2947,4,10 2947,5,11 将表连接到自身: SELECT r1.user_id, r2.rating, count(*) FRO

我的数据库架构如下所示:

匹配id、用户id、等级

比赛是成对进行的

7, 2947, 5
7, 273, 4
在上述匹配7的示例中,用户2947被用户273评为5。用户273被用户2947评为4。如何执行生成以下输出的查询

评级者id、评级、数字评级

其中列出了评级者、相关评级和评级数量。例如,如果用户2947给出了10个4和11个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
选择r1.user\u id、r2.rating、count(*)
来自评级r1
r2上的内部联接评级r2.match_id=r1.match_id和r2.user_idr1.user_id
按r1.user\U id分组,r2.rating

将表连接到自身:

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
选择r1.user\u id、r2.rating、count(*)
来自评级r1
r2上的内部联接评级r2.match_id=r1.match_id和r2.user_idr1.user_id
按r1.user\U id分组,r2.rating

看起来像一个两列的分组方式。看这个

看起来像一个两列的分组。看看这个

正如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

正如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