SQL技术问询:统计指定图书所在的不同图书馆数量
解决方案
嗨,这个需求很好处理,咱们直接用DISTINCT配合COUNT就能实现你要的统计效果——只算特定图书所在的独立图书馆数量,完全忽略单馆内的副本数。
示例SQL语句
假设你的表名叫BooksInLibraries(如果实际表名不一样,替换成你自己的表名即可),要统计BOOKID为2m4的图书分布的图书馆数量,可以这么写:
SELECT COUNT(DISTINCT LibraryID) AS UniqueLibraryCount FROM BooksInLibraries WHERE BOOKID = '2m4';
语句细节解释
COUNT(DISTINCT LibraryID):这是核心逻辑,DISTINCT会先把重复的LibraryID去重,只保留每个图书馆的唯一记录,再用COUNT统计这些独立记录的数量,正好对应你要的“不同图书馆个数”。AS UniqueLibraryCount:给结果列起一个直观的别名,方便你一眼看懂统计结果的含义。WHERE BOOKID = '2m4':指定你要统计的特定图书,换成其他BOOKID值(比如'3ds')就能直接统计对应图书的分布情况。
比如用你给出的测试数据,执行这条语句统计2m4时,结果会是2(对应图书馆1和4);统计3ds时,结果会是3(对应图书馆1、2、3),完全符合你的需求。
内容的提问来源于stack exchange,提问作者jelmood jasser
相关产品推荐
相关产品推荐

