【发布时间】:2014-11-01 03:56:55
【问题描述】:
我已经有一段时间没有玩数据库游戏了,所以我有点生疏了,但我最近遇到了以下问题,我认识的其他人都无法帮助我:
之前:
nm, lt, size
1, a, sm
1, b, lg
1, a, sm
1, b, lg
2, a, sm
2, a, lg
之后:
num, let, sm, lg
1, a, 2, 0
1, b, 0, 2
2, a, 1, 1
我有类似上述示例的数据。 size 列只能是两个值之一。我需要一个查询来将 nm 和 lt 列视为复合键。也就是说,即使它们是单独的,每个组合也应该是唯一的,并且对应的 size 值的计数应该放在它们各自的列中。
我的示例和我的实际数据库之间的唯一区别是 nm 和 lt 列的格式,它们包含更大的数字,导致超过 5,000 个唯一组合,并且大约有 100 万行需要统计并放置在 lg 和/或 sm 列中。
如果我的解释有点令人费解,我深表歉意,希望这个例子就足够了。任何帮助或见解将不胜感激。
【问题讨论】:
-
快速问题 - 您在这里有重复的行。
1, a, sm出现两次,1, b, lg也是如此。这不可能发生,因为正如您所说, nm 和 lt 是独一无二的。是否应该删除这些内容,或者这是您数据集中的错字? -
它们在第一个表中不是唯一的,我需要使它们在第二个表中唯一。第一个表有大约 100 万行,我已经知道如果我使前两列唯一,它会减少到大约 5,000。我的问题是从第一个表中获取第三行,计算并放入第二个表的第三和第四行。