2017-04-22 50 views
-1

我有类似以下SqlFiddle http://sqlfiddle.com/#!9/f30a65/1/0Mysql的获得人数从多列

我需要获得组,但麻烦的是,该数据是在多个列的数据库重复...

EG结果预期:

VALUE - COUNT或GROUP BY

13 - 2

11 - 1

感谢大家

+0

集团? –

+0

@AshrafulIslam我认为我不能按列逐列进行正常组合,因为数据是混合的,也许在单个别名列中加入每个值,然后按这个临时列进行分组将会工作 – Goikiu

+0

使用'UNION ALL'子查询来“unpivot “ 桌子。并且请将数据和预期结果添加到您的问题中。 sqfiddle有太多超时。 –

回答

1

如果你想集团通过对所有列相结合,你可以通过在其列中使用

SELECT value, count(value) as count FROM (
    SELECT C1 as value FROM TABLE1 
    UNION ALL 
    SELECT C2 as value FROM TABLE1 
    UNION ALL 
    SELECT C3 as value FROM TABLE1 
    UNION ALL 
    SELECT C4 as value FROM TABLE1 
    UNION ALL 
    SELECT C5 as value FROM TABLE1 
    UNION ALL 
    SELECT C6 as value FROM TABLE1 
) all_col GROUP BY value 
+0

有道理,做到这一点,但现在我有两个或更多的重复的数字(他们的计数)根据他们的列位置 – Goikiu

+0

@Goikiu答案更新 –

+0

谢谢:)这解决了我的问题 – Goikiu