首页 > 解决方案 > 如何在 SQL Server 中为同一类别按固定行数进行分区?

问题描述

我想将我的数据集划分为每个类别 4 行。

例如,我想将以下 df 划分为 4 行,每行用于相同的类别“a”

df:
category, number
a, 1  
a, 2  
a, 3  
a, 4 
-------------- <-- partition
a, 2  
a, 3
a, 4
a, 5

然后我想在一个新列中返回每个分区的第一个值。

df:
category, number, batch
a, 1, 1
a, 2, 1  
a, 3, 1  
a, 4, 1 
a, 2, 2  
a, 3, 2
a, 4, 2
a, 5, 2

我试过这样做row_number() over (partition by category, number),但batch=1因为number=5它是第一个实例而返回。

解决方案:

row_number() over(partition by category)-1)/4+1 as batch

标签: sql-serverpartitionrow-number

解决方案


推荐阅读