首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于错误的奇怪组,SQL查询无法运行。

由于错误的奇怪组,SQL查询无法运行。
EN

Stack Overflow用户
提问于 2021-12-02 14:26:32
回答 2查看 50关注 0票数 2

我使用PGadmin4 SQL服务器在python接口中编写了这个SQL查询。

它应该返回一个有序的(由和下降,如果与stadiumID相等的话,上升),其中和是在体育场得分的数目。如果体育场里没有任何比赛,那么总数应该是0。

牌桌上有所有比赛的记录,比赛发生在哪个体育场,在人群中有多少人。

体育场桌子上有体育场的数量、容量和拥有它的球队。

比分表上有进球的对手、进球的球员以及他进了多少球。

数据库:

代码语言:javascript
复制
query = sql.SQL("
    SELECT T.Stadiumid AS Stadiumid, T.SUM(Amount) AS Sum 
    FROM(
        (SELECT game.Stadiumid AS Stadiumid,SUM(Amount) AS Sum 
         FROM game,score 
         WHERE (game.Matchid=score.Matchid) 
         )
         UNION 
         (SELECT stadium.Stadiumid AS unplayedStadiumid,0 AS unplayedSum
          FROM stadium 
          WHERE (stadium.Stadiumid NOT IN (SELECT game.Stadiumid FROM game))
         )
         ) AS T 
    GROUP BY T.Stadiumid
    ORDER BY T.Sum DESC,T.Stadiumid
    ")

在执行查询时,我会收到以下错误消息:

代码语言:javascript
复制
column "game.stadiumid" must appear in the GROUP BY clause or be used in an aggregate function

LINE 1: ...d AS Stadiumid, T.SUM(Amount) AS Sum FROM((SELECT game.Stadi...

什么地方出问题了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-02 14:35:58

我相信在您的第一个内部选择中缺少一个GROUP BY。在那里,您正在寻找SUM(Amount),但是您没有指定应该对哪些变量进行求和。

如果要对所有game.Stadiumid进行求和,则此代码适用于联盟的第一部分:

代码语言:javascript
复制
SELECT game.Stadiumid AS Stadiumid,SUM(Amount) AS Sum 
                      FROM game,score 
                      WHERE (game.Matchid=score.Matchid)
                      GROUP BY game.Stadiumid
票数 0
EN

Stack Overflow用户

发布于 2021-12-02 14:35:02

您在这个子查询中错过了组

代码语言:javascript
复制
(SELECT game.Stadiumid AS Stadiumid,SUM(Amount) AS Sum 
FROM game,score 
WHERE (game.Matchid=score.Matchid) 
GROUP BY game.Stadiumid -- missing group by
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70201216

复制
相关文章

相似问题

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