首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AVG和限制SQL的问题

AVG和限制SQL的问题
EN

Stack Overflow用户
提问于 2016-10-02 21:52:43
回答 1查看 205关注 0票数 0

因此,我被要求找到一个查询:在用户评论中找到由前20名用户(最有经验的用户)授予的平均明星。将其与排名前20位用户的平均明星奖进行比较(经验最少)

方案是:

餐厅(名称)

排名(它是如何被Trip排名的,它不知道他们的排名功能是什么!,这不仅仅是得分)

评分(评论员颁发的平均明星)

User_Name -审阅者/别名的名称

Review_Stars -这个评论员给了多少颗星星?

Review_Date -审查日期

User_Reviews -评审者给出的评论总数回顾了他/她对酒店/餐厅等的回顾历史

User_Restaurant_Reviews -相同,但只适用于餐馆

User_Helpful -有多少用户评论被其他审阅者标记为有帮助?

因此,我的逻辑是选择不同的user_names,以及他们的评论,通过评论将其限制为20。当我添加AVG(REVIEW_STARS)时,它完全改变了答案。

代码语言:javascript
运行
复制
SELECT  DISTINCT USER_NAME, USER_REVIEWS
FROM TRIPADVISOR
ORDER BY USER_REVIEWS desc
limit 20;

返回:

Dorian C 1329

Scipion-Paris 1219

Waddler 1213

CJTravelerTexas 937

runner-oh... 828

maurowave 818

gabrielct... 720

AJCG 667

pietro r 652

Albia-Newton 651

Jilllian 650

laserkid 648

pstiva 616

lucaheat 585

Chokk 511

Soracte 491

viaggiatr... 487

tornado9 479

Magorzata B 478

Marcello... 464

当我将查询更改为:

代码语言:javascript
运行
复制
SELECT  DISTINCT USER_NAME, USER_REVIEWS, AVG(REVIEW_STARS)
FROM TRIPADVISOR
ORDER BY USER_REVIEWS desc
limit 20;

返回:Iain U 60 4.3333

我想我的逻辑在我所做的事情上一定是错的,但是如果有人能弄清楚,这会有帮助的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-02 22:02:28

您缺少一个GROUP BY语句,您可能想要删除DISTINCT。你需要这样的东西:

代码语言:javascript
运行
复制
SELECT USER_NAME, USER_REVIEWS, AVG(REVIEW_STARS)
FROM TRIPADVISOR
GROUP BY USER_NAME, USER_REVIEWS
ORDER BY USER_REVIEWS desc
limit 20;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39822080

复制
相关文章

相似问题

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