我有2张桌子,论文和作者。论文包含在给定时间段内发表的所有论文,而作者在一栏中具有作者的姓名,而在另一栏中则具有论文的编号(因此,同一位作者可能会出现多次)。现在,我应该找到每篇论文的平均作者人数。
我的尝试:-
(SELECT COUNT(*) FROM Author as decimal)/(SELECT COUNT(*) FROM Paper);
很显然,第一部分将给我表Author中的行数,第二部分将给我总数。论文发表。但是,我收到一个错误“错误:“ /”或附近的语法错误。我认为这是因为我可能是将一张桌子除以一张桌子(由于我只是postgres的初学者,所以我可能会犯错,如果是这种情况,请纠正我)。我只是想知道如何解决这个错误。谢谢!
答案 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) 真诚的。