SQL查询以查找平均点

问题描述 投票:0回答:2

我有一个数据库,其中包含有关游戏的信息,其列如下:game

我正在尝试创建一个查询,以返回具有以下条件的2列teamaverage_score:1. avg_score是球队在“客场”比赛中的平均得分数(球队名称出现在away_team列中)2.仅包括至少参加过30场比赛的球队。3.仅按平均进球数降序返回前10名球队。

我已经尝试过以下查询:

    SELECT away_team AS team, round(avg(away_score),3) AS ave_goals 
    FROM results
    WHERE date >= 2000-01-01 AND neutral = 'FALSE'
    group by away_team HAVING COUNT(away_team) >=30
    ORDER BY ave_goals DESC
    LIMIT 10 

此查询未提供期望的结果。我究竟做错了什么?感谢您的帮助。

sql pandas
2个回答
0
投票
也许在可行的日期附近加上引号:

SELECT away_team AS team, round(avg(away_score),3) AS ave_goals FROM results WHERE date >= '2000-01-01' AND neutral = 'FALSE' GROUP BY away_team HAVING COUNT(away_team) >=30 ORDER BY ave_goals DESC LIMIT 10


0
投票
您的查询似乎正确,但似乎date条件不正确,我认为我们需要在您的中性列上添加upper()函数。

select * from (select away_team as team , round(avg(away_score),3) as ave_goals from results where cast(date as date) >= '2000-01-01' and upper(neutral)='FALSE' group by away_team having count(away_team) >= 30) t1 order by t1.ave_goals desc limit 10

© www.soinside.com 2019 - 2024. All rights reserved.