我有一个具有以下结构的SQL表。我知道这可能不是表示数据的最佳方式,但这就是我获取数据的方式。
$ ruby -v
ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]
我想查询一本书,找到它存在多少个库。我对这些副本不感兴趣。我只是想知道一本书所在的不同图书馆的数量,而不管某个图书馆的副本。
因此,在上面的示例中,如果我想计算ID为2m4的图书库的数量,答案应该只有2,因为它只存在于两个库中,无论每个库保存多少副本。
我试过了:
BOOKID LibraryID
2m4 1
2m4 1
3ds 3
3ds 1
3ds 2
5tR 1
2m4 4
它给了我书在表中出现的次数,即使它在同一个库中重复出现。我正在寻找的是计算不同图书馆中存在的独特时间。
提前致谢。
答案 0 :(得分:2)
使用DISTINCT关键字并指定LibraryID:
select bookid,count(distinct LibraryID) from books group by bookid