我有161列,每列有50K以上的数据。我必须在折线图中为每一列显示此信息。如果尝试在折线图中显示此信息,则绘制图形需要更多时间。
问题:
现在我决定将每列对应的数据进行划分。对于column1,取前50行取平均值,然后取50行,依此类推。所有列都将继续此过程。
我如何在SQL中执行此操作。我在C#中完成了它,但我想在SQL服务器端执行此操作。
public static IEnumerable<double> CheckRateValue(this IEnumerable<double> values)
{
int i = 1;
int j = 0;
for (; i < values.Count(); )
{
yield return values.Skip(j * 2).Take(2).Average();
i = i + 2;
j++;
}
}
答案 0 :(得分:2)
您可以使用row_number()。
declare @Skip int = 20
declare @Take int = 10
select SomeColumn
from (
select SomeColumn,
row_number() over(order by SomeColumnToOrderBy) as rn
from YourTable
) T
where rn > @Skip and
rn <= @Skip + @Take