+ -
当前位置:首页 → 问答吧 → Select top x from each group

Select top x from each group

时间:2010-11-10

来源:互联网

各位大侠:

    Access中如何得到分组前n名的记录?
   例如数据表结构如附件图片,如何得到每个Class里面前2名的记录?
   
除了如下方法之外的方法:
  Select * from table as t1 where t1.id in (select top 2 id from table where t1.Class=t2.Class order by score)
因为该方法在数据量大的情况下反应非常慢

Access不能用分区,不知有没有比较快速的办法!

附件

捕获.JPG(21.65 KB)

2010-11-10 17:02

作者: tmptp   发布时间: 2010-11-10

不用IN速度就会快很多
复制内容到剪贴板
代码:
SELECT *
FROM table s
WHERE 2<
    (SELECT COUNT(*)
    FROM table sc
    WHERE s.class=sc.class AND sc.score>=s.score
    GROUP BY sc.class)

作者: taller   发布时间: 2010-11-10

热门下载

更多