当前位置: 代码迷 >> Sql Server >> sqlServer 获取 每个分类下 阅读量最高的一本书 每个分类只获取一本,该怎么处理
  详细解决方案

sqlServer 获取 每个分类下 阅读量最高的一本书 每个分类只获取一本,该怎么处理

热度:473   发布时间:2016-04-27 18:04:16.0
sqlServer 获取 每个分类下 阅读量最高的一本书 每个分类只获取一本
如题 

以下为结构

--书籍类别表

CREATE TABLE [dbo].[Category](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL
)go

--所有书籍表
CREATE TABLE [dbo].[Books](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[BookName] [varchar](300) COLLATE Chinese_PRC_CI_AS NOT NULL,
[Author] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[CategoryId] [int] NOT NULL,
[ReadPerson] [bigint] NOT NULL

go


获取每个分类下 ReadPerson最大的一本书籍的信息  

在线等 高手。。。

------解决方案--------------------
SQL code
select * from [Category]as a Cross apply(select top 1 * from  [Books] where a.ID=[CategoryId] order by [ReadPerson] desc ) as b
------解决方案--------------------
or:
SQL code
select a.* from books a inner join(select categoryid,max(readperson) as readperson from books group by categoryidid)b on a.categoryid=b.categoryid and a.readperson=b.readperson
  相关解决方案