选择超过10人阅读的书名

时间:2016-11-23 08:07:34

标签: sql

我有3张表如下。

人( pid ,姓名) 书( isbn ,标题) 阅读( pid isbn

如何选择超过10人阅读的图书标题

2 个答案:

答案 0 :(得分:2)

好的,如果您只是想要这些书的清单,那么您可以做这样的事情。我已将结果更改为大于5,因此没有愚蠢的样本数据。

这会计算每本书的独特读者,而不是总读数(如果有人不止一次读过这本书)。

样本数据

CREATE TABLE #Read (pid int, isbn int)
INSERT INTO #Read (pid, isbn)
VALUES
(1,1324)
,(2,1324)
,(3,1324)
,(4,1324)
,(5,1324)
,(6,1324)
,(1,5678)
,(2,5678)

查询

SELECT
    r.isbn
    ,COUNT(DISTINCT r.pid) Readers
FROM #Read r
GROUP BY r.isbn
HAVING COUNT(DISTINCT r.pid)  > 5

结果

isbn    Readers
1324    6

答案 1 :(得分:0)

select isbn, count(*) from read
group by isbn
having count(*) > 10