mysql group by 2列合并结果

Roo*_*ter 1 mysql group-by query-optimization

我正在尝试弄清楚如何构建这个查询,但遇到了一些困难。

基本上,我试图获取一行中最常用的 id 的计数,其中 id 代表另一个表中的对象,但 id 可以出现在 2 列中。

当我只是钻一列时,这个查询工作得很好:

SELECT rb_1,
       Count(*) AS num
FROM   ci_lineups
GROUP  BY rb_1
ORDER  BY Count(*) DESC
LIMIT  10
Run Code Online (Sandbox Code Playgroud)

但现在我想做类似的事情,除了检查一个名为rb_2as well 的列,该列可以包含所有 id 的列rb_1

当我尝试按 2 列进行分组时,它仅将组视为两列的组合。

如果我使用第一个查询两次(每列一次),我可以用 PHP 编写一个快速脚本来对计数进行组合和排序,但我认为可能有一种方法可以使用 MySQL 来实现此目的。

Did*_*zia 5

以下查询应该执行您想要的操作:

SELECT field, sum(cnt)
FROM (
  SELECT rb_1 as field, count(*) as cnt
  FROM ci_lineups
  GROUP BY rb_1
  UNION ALL
  SELECT rb_2 as field, count(*) as cnt
  FROM ci_lineups
  GROUP BY rb_2
)
GROUP BY field
ORDER BY sum(cnt) DESC
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)