1

我有 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++;
            }


    }
4

1 回答 1

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
于 2012-05-18T06:27:01.307 回答