1

161 の列があり、各列には 50K を超えるデータがあります。この情報を折れ線グラフで各列に表示する必要があります。この情報を折れ線グラフで表示しようとすると、グラフの描画に時間がかかります。

問題 :

ここで、各列に対応するデータを分割することにしました。column1 と同様に、最初の 50 行を取得して平均を取り、次に 2 番目の 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 に答える