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