SQL有两个计数的条款

时间:2017-04-01 22:03:02

标签: sql oracle

我有一个包含两列的表:AUTHOR和PUBLISHER。 我希望得到所有作者在表格中发表的所有作者。

SELECT AUTHOR AS
FROM TEMP1
HAVING COUNT(AUTHOR) = 2
GROUP BY AUTHOR;

因此,这将为我提供我目前想要的结果集,因为我知道数据中只有两个发布者,并且他们都只发布了每个作者的书籍。

SELECT AUTHOR AS
FROM TEMP1
HAVING COUNT(AUTHOR) = COUNT(PUBLISHER)
GROUP BY AUTHOR, PUBLISHER;

这不起作用,因为它只返回所有作者。我猜测其中一个(或两个)的计数可能没有按照我的希望进行,因为该组是错的?

1 个答案:

答案 0 :(得分:1)

您似乎希望表中包含所有发布者的作者:

SELECT AUTHOR 
FROM TEMP1
GROUP BY AUTHOR;
HAVING COUNT(*) = (SELECT COUNT(DISTINCT PUBNAME) FROM TEMP1);