1

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

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

这是一个例子:

M = 1000;N = 100;

我想从这 1000 条记录中提取 100 条记录,但 100 条记录应该是从 0 到 1000 条(例如第 0 条记录、第 10 条记录、第 20 条记录、第 30 条记录……990 条记录、1000 条记录),这样我就可以为它们绘制图表。

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

谢谢你。

4

1 回答 1

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

如果你已经有一个计数器,比如一个INTEGERID 字段,那就更简单了:

SELECT *
FROM YourTable
WHERE ID <= 1000
  AND ID % (1000/100) = 0
于 2013-09-25T19:11:27.137 回答