如何计算平均数并给出子查询标签

时间:2016-02-01 01:10:47

标签: postgresql

我有两个表“book”和“authorCollection”。因为一本书可能有多位作者,所以我希望得到2000年(包括)之后出版的表“book”中的平均作者数。 例如:

Table Book:
key  year
1     2000
2     2001
3     2002
4     1999

Table authorCollection:
key author
1    Tom
1    John
1    Alex
1    Mary
2    Alex
3    Tony
4    Mary

结果应该是(4 + 1 + 1)/ 3 = 2;(键4在2000年之前发布)。 我写了下面的查询语句,但不对,我需要得到子查询中的结果数,但不能给它一个标签“b”,我该如何解决这个问题?并获得作者的平均数量?我仍然对“COUNT(*)as count”的意思感到困惑....感谢。

SELECT  COUNT(*) as count,  b.COUNT(*) AS total 
FROM A
WHERE key IN  (SELECT key
               FROM Book
               WHERE year >= 2000
               ) b
GROUP BY key;

2 个答案:

答案 0 :(得分:3)

首先,计算子查询中authors的{​​{1}}个数。接下来,汇总所需的值:

key

答案 1 :(得分:0)

A sample以及处理'除以零'错误:

{{1}}