SQLServer从M组记录中汇总N条记录

时间:2013-09-25 19:02:22

标签: sql sql-server grouping

我正在使用sql server,我想实现以下目标:

我在数据库中有M条记录,我想记录总结M条记录的N条记录。

  

以下是一个例子:

     

M = 1000;   N = 100;

     

我想从1000个记录中获取100条记录,但100条记录应该是   从0到1000(例如第0记录,第10记录,第20记录,第30记录   记录... 990记录,1000记录)所以我可以为他们绘制图表。

使用sql查询实现此目的的最佳方法是什么。

谢谢你。

1 个答案:

答案 0 :(得分:3)

您可以使用ROW_NUMBER()和模数除法:

执行此操作
SELECT *
FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY Col1) RowNum 
      FROM  YourTable
      )sub
WHERE RowNum <= 1000    --M if it's a variable
  AND RowNum % (1000/100) = 0  -- M/N if they're variables

如果您已经有一个计数器,例如INTEGER ID字段,那就更容易了:

SELECT *
FROM YourTable
WHERE ID <= 1000
  AND ID % (1000/100) = 0