Db2 - 返回每个类别的前5名

时间:2014-05-22 09:25:38

标签: sql db2 greatest-n-per-group

我希望每个菜单能够返回5个menuitem。 这是表格

menus
-------
menuid int()
profileName varchar(35)

menuitems
-----------
itemid int()
name varchar(40)
menuid int()

我确实在这个线程中看到了MySQL的解决方案 - mySQL Returning the top 5 of each category,寻找类似的DB2解决方案。 任何建议都非常感谢。

1 个答案:

答案 0 :(得分:2)

类似的东西:

select ...
from (
    select ..., row_number() over ( partition by m.menuid
                                    order by ? ) as rn 
    from menus m
    join menuitems mi
        m.menuid = mi.menuid
)
where rn <= 5;

Troels Arvin对不同的DBMS进行了比较:

http://troels.arvin.dk/db/rdbms/

其中包括配额查询(例如你要问的那个)