从列计数

时间:2016-03-20 18:44:54

标签: mysql sql select

我有select SELECT COUNT(*),names,names2,whole FROM results GROUP BY names";

这个选择正在运行=有多少名称重复,但如果我添加相同的名称从names2(GROPU BY名称,名称2)收集,那么不起作用。有人可以告诉我如何实现它吗? 我需要名字和名字2列来计算,并给我数字有多少名字。感谢

修改

names names2
John  Michael
Peter John
Michael Peter
Peter Michael

我需要找到名字和名字中的所有Micahel2并给我一些。

结果:

Michael 3
John 2
Peter 2

1 个答案:

答案 0 :(得分:3)

我会为name1和name2使用两个SELECTS,以便它们显示为一列(name1在name1之下,而不是并排),然后UNION ALL它们和然后进行计数:< / p>

select x.name, count(*) from (
    select names as `name` from results
    UNION ALL
    select names2 as `name`from results) x
group by x.name;

重要的是UNION ALL中的 ALL ,因为没有ALL它会消除重复,而这正是你想要的。