-3

巨大なデータベースでいくつかの行を集約する必要があり、それらを 2 乗 n に基づいてグループ化する必要があります。例: 最初に 1 行、次に 2 行、次に 4 行などを集計する必要があります。

この場合、group by の使い方を教えてくれる人はいますか?

ありがとう

4

1 に答える 1

2

行番号の対数底 2 は、必要なグループ化を提供します。

SQLサーバーでは、これを行うことができます

select floor(log((ROW_NUMBER() over (order by someColumn))) / log(2))
from yourTable

SqlServer 2012 には、ログのベースの 2 番目のパラメーターを受け入れるログ関数がありますが、その前に、ログ ベース 10 (log10 関数) または自然対数 (ログ関数) からログ ベース 2 に変換する必要があります。ここで変換式を見つけました

于 2013-10-18T18:44:34.560 に答える