Mysql计数数字组合在6列之间

时间:2016-05-10 11:51:27

标签: php mysql

我一直在四处寻找,但我仍然无法找到解决方案。我要做的是构建一个函数,计算数据库中1,2,3,4,5,6个唯一可能性的所有组合。

示例

根据01,02,03,04,05,06

中的数字a,b,c,d,e,f

(数字不要水平重复)

1)检查所有独特的组合并计算重复次数

计数x组合(示例)

10 - 01,02,03,04,05,06   
09 - 01,02,03,04,05    
08 - 01,02,03,04         
07 - 01,02,03           
06 - 01,02               
05 - 01 

[更新]

为了更清楚,我有6列填充随机数字(01-60)为02 05 09 22 32 33

我需要做的是在整个栏目中重复检查和计数(02 05)或(02 09),(02 22),(02 32)......然后再做同样的事情(02 05 09) )...(02 05 09 22)...(02 05 09 22 32)... (02 05 09 22 32 33)......

我尝试使用此行,但它只计算前2列之间的2个数字的组合

Select d1, d2, count(*) as 'count' from tb group by d1, d2

谢谢!

1 个答案:

答案 0 :(得分:0)

我相信你正在寻找可能组合的重复组数

试试这个

SELECT 
count(*) repetition,CONCAT(A,', ',B,', ',C,', ',D,', ',E,', ',F) combination 
FROM tablename 
GROUP BY CONCAT(A,B,C,D,E,F)