正儿八经的原创 数据交集

来源:互联网 发布:创迹网络 编辑:程序博客网 时间:2024/04/27 19:28

 
 多条件SQL交集算法

 

 1. 使用自建split方法将以逗号分隔的ID 创建为表格形式,例如 3,4,5,6,7

     网络上应该可以看到很多这算法的源码,网友自己写一个也不是很难。

     给个oracle的范例

 

 

 2. 建立关联表 QJIDs.column_value=A.QJID

 

 3. 使用分组方法,如果ID重复出现被分割次 即是表示,在所有满足条件的情况该记录都出现过 即是交集

 SELECT ZBBH,KHBH,ZBMC,SJZB FROM jxkh_t_qjzbxx_B A  
 inner join table(fun_getsplit('3,4,5,6,7',',')) QJIDs on QJIDs.column_value=A.QJID
 group by  ZBBH ,KHBH,ZBMC,SJZB having(count(QJID)=5)
               
 4. 同理可以推出   having(count(QJID)<5) and having(count(QJID)>0)是交集的反集合 即是 集合-交集。

 

 5. 同理可以推出  having(count(QJID)>0) 是整个并集。

 

小节:其实理解起来也不难,qjid出现5次,说明3,4,5,6,7中都有该数据 毫无疑问这时5个区间的交集。

原创粉丝点击