我基本上在普通的 oracle 数据库日志类型的表中查询连接条件。
query_id, join_condition
1 schema1.table1.col1=schema2.table2.col1
1 schema1.table1.col2=schema2.table2.col2
1 schema1.table1.col1=schema2.table3.col1
2 schema1.table1.col1=schema2.table2.col1
2 schema1.table1.col1=schema2.table3.col1
2 schema1.table1.col1=schema3.table3.col1
...........
.........
.......
我已经把它吹成这样的excel表
query_id, left_schema, left_table, left_column, right_schema, right_table, right_schema
1 schema1 table1 col1 schema2 table2 col1
1 schema1 table1 col2 schema2 table2 col2
................
..............
.........
我想从这些中回答以下问题。
同一查询中使用的所有表组合 - 按它们一起出现的次数排序显示。
我已经通过将左表和右表的并集以排序顺序格式放入一个表并将其分组来解决它。因此,根据每个查询 ids 表的数量,随机组合 2 个或 3 个或 4 个或 5 个表名。
现在我的下一个问题是,如何按排序顺序找到这些表的所有可能排列和组合。例如,在查询 id 1 中,我们将 table1 连接到 table2、table3。所以这个查询 id 属于 3 个表组合桶。而且 (table1, table2) 和 (table1, table3) 也属于 2 个表的组合桶。类似地,可能有 4 个表一起,5 个表一起存储桶。我无法在 SQL 或 excel 中解决这个问题。你有什么解决这个问题的建议。图形数据库/R 统计方法是否可以与可视化一起在这里发挥作用。对不起,很长的问题。
期望的输出应该是 4 组报告。1)按出现次数排序的两个表放在一起
two_tables_combination, number_of_queryids
schema1.table1-schema2.table2 2
schema1.table1-schema2.table3 2
schema1.table1-schema3.table3 1
2)三个表一起按出现次数排序
three_tables_combination, number_of_occurances
schema1.table1-schema2.table2-schema2.table3 2
schema1.table1-schema2.table3-schema3.table3 1
3)四个表按出现次数排序在一起
4)高度使用的表的任意组合。
谢谢。