Sql server 具有属性最大计数的记录

Sql server 具有属性最大计数的记录,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个employeebook表,其中包含employeeid和book id列(以及其他) 还有一张历史书的表格: Book_id|description|..... 请注意,并非员工拥有的所有书籍都必须是历史书籍 我需要找出拥有最多历史书的10名员工-员工id和他们拥有的历史书数量 我正在使用SQL Server 2008。 感谢您的帮助为此请使用分组 select top 10 emp_id,count(distinct book_id) from employeebook wher

我有一个employeebook表,其中包含employeeid和book id列(以及其他)

还有一张历史书的表格:

Book_id|description|.....
请注意,并非员工拥有的所有书籍都必须是历史书籍

我需要找出拥有最多历史书的10名员工-员工id和他们拥有的历史书数量

我正在使用SQL Server 2008。

感谢您的帮助

为此请使用分组

select top 10 emp_id,count(distinct book_id)
from employeebook 
where isnull(book_id,0)<>0
group by emp_id
select top 10 emp_id, count(book_id) as NoOfBookID from EmployeeBook group by emp_id

根据emp_id从employeebook group中选择前10名emp_id,count(book_id)请查看要求-这不是一个简单的最大值。从employeebook e中选择前10名emp_id,count(b.book_id)加入e.book_id=b.book_id按emp_id分组
select top 10 e.emp_id,count(distinct b.book_id)
from employeebook e
inner join HistoryBooks b on e.book_id=b.book_id
group by emp_id
select top 10 emp_id, count(book_id) as NoOfBookID from EmployeeBook group by emp_id