sql-server - 如何在 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
解决方案
推荐阅读
- java - 如何删除 TextInputLayout 提示文本中的椭圆(三个点)?
- javascript - 如何将活动类设置为菜单项(sessionStorage)
- python - 如何修复“WebSocket 握手期间出错:意外的响应代码:400”错误
- reactjs - 在前端处理后端错误状态
- computer-science - 数据是什么意思?- SICP
- angular - 如何在不刷新角度 7,8 的情况下重新加载整个页面?
- r - 将列表中每个数据框的列重命名为其数据框名称的函数
- office365 - Microsoft Graph People API 中 PersonType 的可能值
- python - 狮身人面像 autodoc 不导入 module.submodule 但导入模块
- r - 如何在for循环中进行rbind?