我有一个名为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/

10-11 17:34