2017-04-01 88 views
0

我有一个两列的表:AUTHOR和PUBLISHER。 我想让表中所有作者发表的所有作者。SQL具有两个计数的子句

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; 

这不起作用,因为它只是返回所有作者。我猜测一个(或两个)计数可能没有做我期望的,因为这个组是错误的?

+0

'HAVING'进入*后*'集团BY'。 –

回答

1

你似乎想有所有的出版商表中作者:

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

正确,这是更好的措辞。我会更新我的问题以改善其语言,并接受此答案。 –