sqlite GROUP BY缺少一行

时间:2016-10-28 22:59:41

标签: sqlite group-by

我有一个记录表,其中唯一ID在与类似记录匹配的ControlID上交叉连接到自身。

初始表:

ID (key), ControlID (records match), ... other fields
31 | 56 ...
32 | 56 ...
33 | 56 ...

加入表:

ID, ControlID, ID (2), ControlID (2), ..., matchID (sum of ID keys)
31 | 56 | 32 | 56 ... 63
31 | 56 | 33 | 56 ... 64
32 | 56 | 31 | 56 ... 63
32 | 56 | 33 | 56 ... 65
33 | 56 | 31 | 56 ... 64
33 | 56 | 32 | 56 ... 65

我需要消除重复ID组合的行,因此匹配matchID。我只需要为每个matchID和ControlID组合使用一行。 所以我认为GROUP BY ControlID, matchID会起作用。这是我的结果:

33 | 56 | 31 | 56 ... 64
33 | 56 | 32 | 56 ... 65

为什么这不包括以下行?

31 | 56 | 32 | 56 ... 63

还是这一排?

32 | 56 | 31 | 56 ... 63

应返回matchID为63的其中一行,对吧?我错过了什么?

1 个答案:

答案 0 :(得分:0)

我刚刚添加了ID < ID (2)的条件。这给出了必要的结果,但我仍然不明白为什么GROUP BY不起作用。