原始数据如图一
想得到图二的结果
简单来说,图一是要去做排列组合的基础的数据,基础数据只有1,2,3三个不同的值, 图二是图一通过排列组合后的最简结果,把里面能合并的数据合并,不能合并的数据继续用原始的数据写出来即可。。请问这个要如何实现。
如:
1 1 2 1
1 1 2 3
可以合并为
1 1 2 1,3
如
1 2 2 1
1 2 2 3
3 2 2 3
3 2 2 1
可以合并为
1,3 2 2 1,3
但是像原始数据
1 3 2 3
就没法和别的数据做排列组合的合并,那么在result表中就继续保留为
1 3 2 3
当然,我这只是部分数据,实际数据很多,可能最终result的结果在算法不同的情况下得到的排列组合方式也不一样,我希望能得到 select count(*) from t_sort_and_comb_result 的结果最小的算法为最优解。
请问这个如何实现。可以用SQL,循环,游标,存储过程等等方法,只要能得到最优的结果。