[英]A query that shows latest published books from each publisher from a table
我正在尝试编写一个查询,从这样的表中显示每个出版商的最新出版书籍
书号 | 名称 | 出版商 | 出版年份 |
---|---|---|---|
61523 | 时间:2019-05-06 标签:c++ | 皮尔逊 | 2018年 |
54681 | Python | sybex | 2017年 |
45168 | sql | 悦刻 | 2019年 |
79137 | C# | 麦克米伦 | 2016年 |
89451 | 中央社 | 皮尔逊 | 2020年 |
45187 | 图 1 | 悦刻 | 2021年 |
16497 | 中央电视台 | sybex | 2018年 |
19437 | 照片 2 | 企鹅 | 2019年 |
查询中所需的表应该是:
出版商 | 名称 |
---|---|
皮尔逊 | 中央社 |
sybex | 中央电视台 |
悦刻 | 图 1 |
麦克米伦 | C# |
企鹅 | 照片 2 |
这是使用窗口函数的一种方法:
select * from (
select * , row_number() over (partition by publisher order by PublishYr desc) rn
from tablename
) t where rn = 1
如果您使用SELECT TOP(1) WITH TIES
则查询不需要子查询。
select top(1) with ties publisher, book_name,
row_number() over (partition by Publisher
order by PublishYr desc) rn
from TableWithData
order by rn;
获取每个发布者的最大年份作为子查询并加入源表。
Select tablename.Publisher, tablename.Name
From tablename
Inner Join (
Select max(PublishYr) As MaxPublishYr, Publisher
From tablename
Group By Publisher
) as Subqry on Subqry.Publisher = tablename.Publisher
and Subqry.MaxPublishYr = tablename.PublishYr
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.