mysql - 从列数

标签 mysql sql select

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

此选择有效 = 有多少名称重复,但如果我添加相同的名称以从 names2 (GROPU BY names,names2) 中收集,则不起作用。有人可以告诉我如何实现吗? 我需要 names 和 names2 列来计算并告诉我有多少个名字。谢谢

编辑

names names2
John  Michael
Peter John
Michael Peter
Peter Michael

我需要在 names 和 names2 中找到所有 Micahel 并给我一个数字。

结果:

Michael 3
John 2
Peter 2

最佳答案

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

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,它将消除重复项,而这正是您想要的。

关于mysql - 从列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36117959/

相关文章:

mysql - 导入以前导出的 mysql 触发器时出错

mysql - 将某些字段(仅结构)从另一个表复制到现有表中

mysql - 如何选择两列中的不同行并对它们分别进行排序

android - 当想要选择时,在 android Sqlite 中获取错误 Index 0 requests, with a size of 0

Mysql第三表关系SELECT

mysql - 选择多个表中 EACH 2 个表之间共有的所有值

mysql - 无法截断在 Codeigniter 中的外键约束中引用的表

mysql - 在坏表上加入 MySQL 表

javascript - 如何获取mysql中前两行值并将其与 session 用户变量的值进行比较?

sql - 使用 couchbase N1QL 仅获取子文档