按分组分组返回意外结果

时间:2017-08-18 11:47:23

标签: tsql

我有一个表,我正在使用Group by Group Sets,它返回一行我不理解的数据。我希望你们都能帮助我理解它:

enter image description here

返回的第一行包含Balance和WarehouseNo的Null,但我知道Total Value对应于WarehouseNo WW-COI且Balance为Null(参见第二张图片证明这一点)。

enter image description here

为什么在使用Group By Grouping Sets时它显示为null?

1 个答案:

答案 0 :(得分:0)

我认为你有几个不同的混淆。

Grouping sets通常用于摆脱Union All,您需要在相同的表中使用不同的分组。

在您的情况下,您保留Union All,因为它位于两个不同的表格上。

因此,从它看来,您可能只想使用普通Group By来保持您的分组链接在一起。我不清楚为什么你在这里需要grouping sets

现在......回答你的问题: 由于您在此联合数据集上使用grouping sets,因此它将为您提供的两个集合执行不同的分组。

同时,它将仅对WarehouseNo进行分组,同时分别对Balance进行不同的分组。

没有看到您的原始数据,这可能是您在没有预料到的地方获得Null的原因。

如果要链接两列,则需要将它们包含在同一个集合中。如:

Group By Grouping Sets ((WarehouseNo, Balance), (another grouping you may want))

"其他分组"很可能只是(WarehouseNo)或(Balance)甚至没有分组()。但只有你能决定为什么这些信息对你很重要。

所以,从它的外观来看,你可能只想在这里使用普通的Group By。但很可能我错过了一些我不了解你的数据以及你想用它实现的目标。

希望有所帮助。 :)