我正在使用 sql server,我想实现以下目标:
我在数据库中有 M 条记录,我想用 N 条记录总结 M 条记录。
这是一个例子:
M = 1000;N = 100;
我想从这 1000 条记录中提取 100 条记录,但 100 条记录应该是从 0 到 1000 条(例如第 0 条记录、第 10 条记录、第 20 条记录、第 30 条记录……990 条记录、1000 条记录),这样我就可以为它们绘制图表。
使用 sql 查询实现此目的的最佳方法是什么。
谢谢你。
我正在使用 sql server,我想实现以下目标:
我在数据库中有 M 条记录,我想用 N 条记录总结 M 条记录。
这是一个例子:
M = 1000;N = 100;
我想从这 1000 条记录中提取 100 条记录,但 100 条记录应该是从 0 到 1000 条(例如第 0 条记录、第 10 条记录、第 20 条记录、第 30 条记录……990 条记录、1000 条记录),这样我就可以为它们绘制图表。
使用 sql 查询实现此目的的最佳方法是什么。
谢谢你。
您可以使用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