This question already has answers here:
How to count the number of instances of each foreign-key ID in a table?
                                
                                    (5个答案)
                                
                        
                                2年前关闭。
            
                    
这是我正在使用的数据库:https://drive.google.com/file/d/1ArJekOQpal0JFIr1h3NXYcFVngnCNUxg/view?usp=sharing

对于每位学术人员,计算他/他撰写的论文总数。输出量
应包括每位学者的姓名和论文总数。尤其是,
没有论文的学者在论文中的论文数应为零(0)
输出。您必须使用JOIN运算子。

我不确定如何输出每位学者的论文总数。

我在这个问题上的尝试:

SELECT acnum, panum
FROM author NATURAL JOIN paper;


这将输出panum和acnum,但未指定每个acum的总数。是否有一个关键字可以输出每个acum的总数?

谢谢。

最佳答案

做一个左外连接。然后,您可以计算出匹配的作者行数。如果没有匹配的作者行,则由于LEFT JOIN,因此为NULL。对于在计数特定字段时为空字段,它将被计为无行(因此为零)。

SELECT CONCAT_WS(' ', academic.title, academic.initials, academic.faname), COUNT(author.panum)
FROM academic
LEFT OUTER JOIN author
ON academic.acnum = author.acnum
GROUP BY CONCAT_WS(' ', academic.title, academic.initials, academic.faname)

关于mysql - 输出特定类别的总数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50347201/

10-13 09:30