我需要在一个庞大的数据库中聚合一些行,并且需要根据2个幂n对它们进行分组。 例如:我首先需要聚合1行,然后是2行,然后是4行等。
在这种情况下,有人可以帮助我如何使用群组吗?
由于
答案 0 :(得分:2)
行号的日志库2将为您提供所需的分组。
在sql server中,您可以使用
执行此操作select floor(log((ROW_NUMBER() over (order by someColumn))) / log(2))
from yourTable
SqlServer 2012有一个日志函数,它接受日志基础的第二个参数,但在此之前,您需要自己从日志库10(log10函数)或自然日志(日志函数)转换为日志库2 。我找到了转换公式here