我有一个名为NewsArticles的表,该表具有ID,LanguageID,Date,Title,ArticleContent列。我想创建一个视图,该视图选择数据库中每种语言的5条最新新闻。
例如,如果我有3种语言,例如英语,法语和德语,则查询应返回15条记录,其中包含5条最新的英语新闻文章,5条...您就会得到图片。如何构造这样的查询?
对于NewsArticles中的每个 唯一的LanguageID,返回按Date降序排列的前5条记录。
最佳答案
使用CTE非常简单。
;with x as
(
select ID, LanguageID, Title, Date,
row_number() over ( partition by LanguageID order by Date DESC ) as position
from NewsArticles
)
select * from x
where Position < 6
关于sql - 如何为表中列的给定值选择最多N条记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4295605/