【问题标题】:Division in postgrespostgres 中的划分
【发布时间】:2019-01-18 01:10:28
【问题描述】:

我有 2 个表格,Paper 和 Author。 Paper 包含在给定时间段内发表的所有论文,并且 Authors 在一个列中具有作者姓名,在另一列中具有已发表论文的 id(因此,同一作者可能会出现多次)。现在我应该找到每篇论文的平均作者数。

我的尝试:-

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

很明显,第一部分会给我表 Author 中的行数,第二部分给我总行数。发表的论文。但是,我收到一个错误“错误:在“/”处或附近出现语法错误。我相信这是因为我可能将一张桌子按一张桌子划分(因为我只是 postgres 的初学者,我可能大错特错,如果是这种情况,请纠正我)。我只想知道我们如何解决这个错误。谢谢!

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

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

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

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

    【讨论】:

    • 知道了。非常感谢先生!
    【解决方案2】:

    您可以加入表格并划分具体信息例如:

    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) 真诚的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-29
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多