【问题标题】:SQL Average of averageSQL 平均值的平均值
【发布时间】:2017-11-29 10:47:47
【问题描述】:

您好,我正在努力进行以下练习:

找出 1950 年之前发布的文章的平均评分与 1950 年之后发布的文章的平均评分之间的差异。(确保计算每篇文章的平均评分,然后计算 1950 年之前和之后文章的平均值. 不要只计算 1950 年前后的总体平均评分。)

SELECT AVG(RatingBefore + RatingAfter) AS Difference FROM Rating
WHERE AVG(star) AND year >1950 AS AverageAfter
AND AVG(star) AND year<1950 AS AverageAfter
GROUP BY title

这段代码有用吗?我是 SQL 新手,所以如果它是一团糟,请很好。 :) (在我给出的练习中没有指定什么类型的 SQL。)

【问题讨论】:

  • “WHERE AVG(star) AND year >1950 AS AverageAfter AND AVG(star) AND year
  • Aww.. 好的,谢谢你告诉我。 :) 我一直使用 w3schools 作为我的主要资源,但是那里的示例的复杂性很低。
  • @MiloBellano 只有它们的区别是一个结果
  • w3schools 也被称为“w3fools”,通常不是寻求建议的好地方(SQL 部分有很多错误,我被告知 HTML 和 CSS 也是如此)跨度>

标签: sql average


【解决方案1】:

这是一个猜测,因为我们没有其他信息(样本数据、表结构等)

SELECT
  AVG(CASE year >1950 THEN star END) - AVG(CASE year < 1950 THEN star END),
  AVG(star)
FROM Rating
GROUP BY title

这是在同一查询中计算 1950 年之前和 1950 年之后的平均值作为总体平均值的条件聚合。

【讨论】:

  • 数据结构很简单:1张“Ranking”表,4列“Id, title, year and star(1 to 5)。
猜你喜欢
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-09
  • 1970-01-01
  • 2018-07-12
  • 2015-09-29
相关资源
最近更新 更多