我有一个看起来与此类似的 SQL 结果集,并按 STYLE 排序:
STYLE | CUSTOMER | SIZE | COLOUR |
-----------------------------------------------------------------
A DWTG S BLUE
B DWTG S RED
C DWTG S GREEN
C DWTG M GREEN
D DWTG S ORANGE
D DWTG M ORANGE
D DWTG L ORANGE
现在,我需要拆分此结果集并获取前 1000 行。没问题,我可以用TOP 1000
。
我的问题是,对于上面的示例,如果我想说前 3 行,因为在下一行重复了,我STYLE
也C
需要包含它(所以我实际上会有 4 行)。
上面的示例,我希望结果集如下所示:
STYLE | CUSTOMER | SIZE | COLOUR |
-----------------------------------------------------------------
A DWTG S BLUE
B DWTG S RED
C DWTG S GREEN
C DWTG M GREEN
这是因为我们将数据导入到其中的 ERP 具有文件大小限制,因此我需要将结果集拆分为较小的文件,但我需要将相同的记录(STYLE 中的相同值)保存在一起。
我正在考虑某种窗口函数,它会TOP n
根据下一行是否具有相同的样式动态地添加一个数字。
有任何想法吗?