首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql,SubQuery问题

Mysql,SubQuery问题
EN

Stack Overflow用户
提问于 2011-02-09 18:58:27
回答 3查看 296关注 0票数 2
代码语言:javascript
复制
Select rating_id, average_rating

From (Select rating_id, avg(rating_num) as average_rating
    from ratings
    group by rating_id
    having count(*) > 50)

HAVING average_rating > 4 ;

运行查询后,我会得到一个错误

每个派生表都必须有自己的别名。

我知道这里的部分是有效的:

代码语言:javascript
复制
Select rating_id, avg(rating_num) as average_rating
        from ratings
        group by rating_id
        having count(*) > 50

我在这个子查询中做错了什么?我找了又找又找,但是找不到错误,不管我在哪里纠正,我还是会犯错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-09 19:00:09

将"as SomeAlias“放在子查询之后:

代码语言:javascript
复制
Select rating_id, average_rating

From (Select rating_id, avg(rating_num) as average_rating
    from ratings
    group by rating_id
    having count(*) > 50) as A

HAVING average_rating > 4 ;
票数 1
EN

Stack Overflow用户

发布于 2011-02-09 19:00:12

正如错误消息所述,您需要为子查询添加一个别名:

代码语言:javascript
复制
SELECT rating_id, average_rating
FROM (
    SELECT
        rating_id,
        AVG(rating_num) AS average_rating
    FROM ratings
    GROUP BY rating_id
    HAVING COUNT(*) > 50
) AS some_alias
WHERE average_rating > 4 

some_alias可以是任何东西--或者是子查询的描述性名称,或者是因为您不需要按名称引用子查询,所以可以只使用非描述性的名称,比如T1 (然后是T2、T3等等)。

此外,您也可以在外部查询中使用WHERE,而不是使用。

票数 3
EN

Stack Overflow用户

发布于 2011-02-09 18:59:43

代码语言:javascript
复制
Select rating_id, average_rating

From (Select rating_id, avg(rating_num) as average_rating
    from ratings
    group by rating_id
    having count(*) > 50) a

HAVING average_rating > 4 ;

注意表别名"a“

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4949217

复制
相关文章

相似问题

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