【问题标题】:To Find AVG per Type查找每种类型的 AVG
【发布时间】:2014-10-23 02:39:27
【问题描述】:

基本上尝试编写查询来选择movie_cost 和每个流派的平均movie_cost。所以假设我有 3 类电影,戏剧,动作和喜剧。每种类型的每部电影都有自己的电影成本类型。如何获得每种类型的平均 movie_cost?

我还需要找出平均电影成本与单个电影成本之间的百分比差异。我知道我必须将movie_cost 减去平均movie_cost,再除以平均movie_cost 再乘以100。

到目前为止,我已经得到了这个,但我不知道从那里去哪里:

SELECT movie_cost, AVG(movie_cost), (COUNT(movie_cost - AVG(movie_cost))/AVG(movie_cost)*100))
FROM MOVIE
GROUP BY movie_cost;

谁能帮忙?

【问题讨论】:

  • 您的问题需要进一步澄清。你能提供样本数据和期望的结果吗?表格格式也会有所帮助。
  • 现在清楚了吗?
  • 。 .清晰得多。样本数据和期望的结果通常可以。

标签: sql oracle oracle11g


【解决方案1】:

您可以使用分析函数来做到这一点:

select avg(movie_cost) over (partition by genre) as average_cost,
       movie_cost,
       100 * ((movie_cost - avg(movie_cost) over (partition by genre)) /avg(movie_cost) over (partition by genre)) as diff
from movies m;

【讨论】:

  • 反转百分比差异。因为正面就是负面,负面就是正面。还有什么 1 - 做什么?以及over(partition by)操作有什么作用?
猜你喜欢
  • 2020-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多