【发布时间】:2014-08-19 18:43:27
【问题描述】:
我想使用 sql 查找唯一的数据集(想想形成唯一数据集的行组,查找并消除重复项)。对 parent_id、key_id、key_value_id 进行分组。但唯一性需要通过横向和纵向考虑数据来确定。数据大小为 terra 字节。
例如,我在表格中有以下数据 -
parent_id key_id key_value_id id value
601 null null 601 S
601 null null 602 5
601 null null 601 S
601 null null 602 5
601 null null 610 TYPE B
16501 16502 3 16501 -
16501 16502 3 16508 ?
601 null null 601 S
601 null null 602 5
16501 16502 3 16501 -
16501 16502 3 16508 3
预期结果如下 -
parent_id key_id key_value_id id value
601 null null 601 S
601 null null 602 5
601 null null 601 S
601 null null 602 5
601 null null 610 TYPE B
16501 16502 3 16501 -
16501 16502 3 16508 ?
16501 16502 3 16501 -
16501 16502 3 16508 3
此数据集/网格被重复并因此被删除。
601 null null 601 S
601 null null 602 5
由于集合中有额外的行,这将被视为单独的数据集 -
601 null null 601 S
601 null null 602 5
601 null null 610 TYPE B
一种选择是使用游标,但数据量很大,这可能不是一个高效的解决方案。我想知道是否有更简单的方法来做到这一点。
任何帮助/指针将不胜感激。
【问题讨论】: