SQL:如何有效地对重叠组进行排序

时间:2015-05-04 10:30:58

标签: sql sqlite unique-constraint

我正在尝试在具有10.000+行的数据库上创建组。 我需要快速有效,所以我正在为每个集群做二进制变量。 一,二,四,五和六是在Group1中。

但'Two'也可能在Group nr。 2,因为错误我无法克服,因为我的数据集来自webscrape。我尝试以独特的方式对所有内容进行排序,但如果我希望高效快速的话,基本上不可能不做错误。

ID   Title    Group1      Group2     Group3      Ungrouped
1    One      1           0          0           0
2    Two      1           1          0           0
3    Three    0           1          1           0
4    Four     1           0          1           0
5    Five     1           0          0           0
6    Six      1           1          1           0
7    Seven    0           0          0           1

我对溶剂的想法:

  1. 分配组(一个),直到所有内容被分组一次或多次。
  2. 查询分配了多个组的所有内容(2,3,4,6)
  3. 手动决定删除哪一个,直到他们只分配一个组。
  4. 手动执行第3部分实际上是个好主意,因为它需要对文档进行内容分析。

    我的问题:

    如何指定,我需要查看多个组的所有内容?它是否与约束和唯一值有关,还是有一种我没有看到的更简单明了的方法?

1 个答案:

答案 0 :(得分:0)

如果您的群集存储为整数,则可以执行以下操作:

select c.*
from clusters c
where (cluster1 + cluster2 + cluster3) > 1;

我不知道SQLite中的“二进制变量”是什么。有些数据库支持二进制标志,您需要将值转换为where子句的整数。