我基本上在正常的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
................
..............
.........
我想回答以下问题。
在同一查询中使用的所有表格组合 - 按照它们一起出现的次数的排序顺序显示。
我已经通过将左表和右表以排序顺序格式的联合放入表中并对其进行分组来解决它。因此,根据每个查询ID表的数量随机组合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)高度使用的表的任何组合。
感谢。