2016-11-30 2 views
1

я следующую таблицу:MySQL группы по 2 колонки на то же значение

ID custom_1     custom_2 
+----+------------------------+------------------------ 
1  value_1     NULL 
2  value_2     value_1 
3  value_3     value_4 
4  NULL      value_4 

Я хочу создать запрос для извлечения следующий вывод:

value     count 
+------------------------+------------------------ 
    value_1     2 
    value_2     1 
    value_3     1 
    value_4     2 

Я знаю, что могу GROUP BY несколько поля, но я думаю, что это не способ сделать это в этом случае. Нужно ли использовать СОЮЗ?

ответ

2

Вы можете использовать оператор union all, чтобы обе колонки в одном столбце результатов, а затем группа им:

SELECT custom, COUNT(*) 
FROM  (SELECT custom_1 AS custom 
      FROM mytable 
      UNION ALL 
      SELECT custom_2 AS custom 
      FROM mytable) t 
GROUP BY custom 
+0

Хорошо, я попробую это. Вы знаете, как построить этот необработанный запрос в DQL? (Язык запросов Doctrine) – VaN

Смежные вопросы