如何计算数字分组时的平均值

时间:2016-07-07 03:45:50

标签: sql postgresql

我正在构建(在Rails中)一个应用程序来刮取NBA数据(主要用于我自己的启发和学习工具)。我从头开始使用postgresql,因为如果我要主持它,它会更有意义。数据库架构的设置完全符合我的要求here

参与者实例基于TEAM概念 统计实例基于PLAYER概念,因此许多统计实例构成了参与者的“总数”。

以下查询:

Select SUM(steals) from statistics
INNER JOIN participants on statistics.participant_id = participants.id
INNER JOIN teams on participants.team_id = teams.id 
WHERE teams.id = 15 
GROUP BY statistics.participant_id;

产量(在psql终端应用程序中)

 sum 
-----
   8
   7
   5
   7
   6
   7
  10
   6
   7
   6
   7
   5
   9
  11
   4
   7
   8

如何编写sql查询来计算基于这17行的平均值

(编辑以简化查询并只询问一个问题)

1 个答案:

答案 0 :(得分:0)

使用以下查询打包您的查询

SELECT sum, AVG(sum)
FROM (
  -- your query here
) x

在某些系统上,您还可以使用不需要外部查询的窗口函数。它的语法如下所示

AVG(sum) OVER () as avg

因为您要查找的平均值是分组的结果,所以您无法在此处使用它。