首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为每个类别选择前10条记录

为每个类别选择前10条记录
EN

Stack Overflow用户
提问于 2008-10-07 02:01:25
回答 10查看 572.4K关注 0票数 247

我想在一个查询中返回每个部分的前10条记录。有没有人能帮我解决这个问题呢?节是表中的一列。

数据库为SQL Server 2005。我想按输入的日期返回前10名。部分包括业务、本地和功能。对于一个特定的日期,我只需要前(10)个业务行(最近的条目)、前(10)个本地行和前(10)个特征。

EN

回答 10

Stack Overflow用户

发布于 2008-10-07 02:13:52

如果你使用的是SQL2005,你可以这样做...

SELECT rs.Field1,rs.Field2 
    FROM (
        SELECT Field1,Field2, Rank() 
          over (Partition BY Section
                ORDER BY RankCriteria DESC ) AS Rank
        FROM table
        ) rs WHERE Rank <= 10

如果您的RankCriteria是平局的,那么您可能会返回超过10行,Matt的解决方案可能更适合您。

票数 255
EN

Stack Overflow用户

发布于 2012-06-25 18:16:59

在T-SQL中,我会这样做:

WITH TOPTEN AS (
    SELECT *, ROW_NUMBER() 
    over (
        PARTITION BY [group_by_field] 
        order by [prioritise_field]
    ) AS RowNo 
    FROM [table_name]
)
SELECT * FROM TOPTEN WHERE RowNo <= 10
票数 113
EN

Stack Overflow用户

发布于 2012-06-15 22:26:33

SELECT r.*
FROM
(
    SELECT
        r.*,
        ROW_NUMBER() OVER(PARTITION BY r.[SectionID]
                          ORDER BY r.[DateEntered] DESC) rn
    FROM [Records] r
) r
WHERE r.rn <= 10
ORDER BY r.[DateEntered] DESC
票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/176964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档