PostgreSQL - 计算行数

时间:2014-09-22 07:38:37

标签: sql postgresql

考虑以下列出一些书籍的作者:

Table

name     bookid
---------------
Alan        1
Bob         1
Charlie     2
David       2

我想知道一个人在整个书线上有多少共同作者。例如,如果艾伦写了两本书,一本是鲍勃,另一本是查理+大卫,那么他的共同作者总数应该是3。

我尝试了什么(但没有工作):

select t1.name, count(t2.name)
from table t1, table t2 
where t1.bookid = t2.bookid 

任何帮助人?非常感谢。

2 个答案:

答案 0 :(得分:1)

select t1.name, count(t2.name)
from table1 t1, table1 t2 
where t1.bookid = t2.bookid 
and t1.name != t2.name
group by t1.name

sqlfiddle

答案 1 :(得分:-1)

SELECT name, count(*) as cnt
FROM table
GROUP BY name;