Postgres中的部门

时间:2019-01-17 16:47:29

标签: sql postgresql

我有2张桌子,论文和作者。论文包含在给定时间段内发表的所有论文,而作者在一栏中具有作者的姓名,而在另一栏中则具有论文的编号(因此,同一位作者可能会出现多次)。现在,我应该找到每篇论文的平均作者人数。

我的尝试:-

    (SELECT COUNT(*) FROM Author as decimal)/(SELECT COUNT(*) FROM Paper);

很显然,第一部分将给我表Author中的行数,第二部分将给我总数。论文发表。但是,我收到一个错误“错误:“ /”或附近的语法错误。我认为这是因为我可能是将一张桌子除以一张桌子(由于我只是postgres的初学者,所以我可能会犯错,如果是这种情况,请纠正我)。我只是想知道如何解决这个错误。谢谢!

2 个答案:

答案 0 :(得分:1)

假设所有论文至少有一位作者:

select count(*) * 1.0 / count(distinct paper_id)
from authors;

* 1.0是为了避免整数除法。

答案 1 :(得分:0)

您可以联接表并划分特定信息,例如:

SELECT 
COUNT(au.*)/COUNT(pa.*) AS division_result      -- depends on your data

FROM Author au

JOIN Paper pa
ON                               -- join criteria depends on your data(eg.au.id=pa.id  )

希望这会有所帮助(我假设您没有使用BigQuery) 真诚的。