SQL Group by Intervals of 2 power n

时间:2013-10-18 17:58:03

标签: sql

我需要在一个庞大的数据库中聚合一些行,并且需要根据2个幂n对它们进行分组。 例如:我首先需要聚合1行,然后是2行,然后是4行等。

在这种情况下,有人可以帮助我如何使用群组吗?

由于

1 个答案:

答案 0 :(得分:2)

行号的日志库2将为您提供所需的分组。

在sql server中,您可以使用

执行此操作
select floor(log((ROW_NUMBER() over (order by someColumn))) / log(2))
from yourTable

SqlServer 2012有一个日志函数,它接受日志基础的第二个参数,但在此之前,您需要自己从日志库10(log10函数)或自然日志(日志函数)转换为日志库2 。我找到了转换公式here