【问题标题】:SQL. Finding the average between certain datesSQL。查找特定日期之间的平均值
【发布时间】:2014-03-24 16:21:11
【问题描述】:

我正在尝试查找电影在特定时间之间获得的平均分数

SELECT SUM (score * ?) / SUM(?) AS AGGSCO
  FROM movie, casting
       INNER JOIN casting
 WHERE movie.id = casting.movieid
       AND yr BETWEEN 1930 AND 1939;

我想我需要的是出现次数,而不是问号。在此之后,我需要重复代码以找到 40 到 49 之间的平均值,然后找到 50 到 59 之间的平均值。我可以使用循环还是需要重写代码?感谢您的建议!

ps:我使用的是 squirrel,而不是 mysql,所以语法可能不同

【问题讨论】:

  • Squirrel 只是一个客户端而不是服务器软件。您可能使用 MySQL 作为 DBMS,使用 Squirrel 作为应用程序来访问数据库。

标签: sql syntax database squirrel-sql


【解决方案1】:
select sum(score) / count(*) as AverageScote
from ...

甚至更好

select avg(score)
from ...

【讨论】:

  • 非常简单,不敢相信我错过了。另一个简单的问题,要获得明年的平均值,请选择 AVG(score), AVG(score) FROM movie WHERE yr between 1930 AND 1939;
  • 我需要使用AS关键字吗
【解决方案2】:

从我的头顶:

SELECT avg(score) AS AGGSCO, truncate(yr/10,0) AS DECADE
  FROM movie, casting
       INNER JOIN casting
 WHERE movie.id = casting.movieid
 GROUP BY truncate(yr/10,0)

另见this question

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 2015-07-28
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    相关资源
    最近更新 更多