首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何执行以下SQL?

如何执行以下SQL?
EN

Stack Overflow用户
提问于 2011-03-27 11:02:28
回答 3查看 38关注 0票数 0

我的数据库模式如下:

match_id、user_id、分级

匹配是成对的,例如:

代码语言:javascript
复制
7, 2947, 5
7, 273, 4

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

rater_id,评级,num_ratings

其中列出了评价者、其关联的评分和评分的数量。例如,如果用户2947给出了10个4和11个5,我希望看到:

代码语言:javascript
复制
2947,4,10
2947,5,11
EN

回答 3

Stack Overflow用户

发布于 2011-03-27 11:06:36

将表连接到自身:

代码语言:javascript
复制
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
票数 4
EN

Stack Overflow用户

发布于 2011-03-27 11:08:21

看起来像一个两列的group by。看看这个tutorial

票数 0
EN

Stack Overflow用户

发布于 2011-03-27 11:52:00

正如Somid3所说,我认为它是两列分组。试试这个吧。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5446935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档