2013-06-04 3 views
1

Как подсчитать общее количество значений в нескольких столбцах?Учитывать количество значений в любом столбце таблицы

Сырье Таблица:

col1 col2 
---- ---- 
don sam 
jon sam 
mike lisa 
sam lisa 
lisa beth 

Результат:

name appearances 
---- ----------- 
don 1 
sam 3 
jon 1 
mike 1 
lisa 3 
beth 1 

Я пытался писать объединения, где получают общее количество является подзапрос, но это, кажется неуклюжим. Я предполагаю, что MySQL имеет какой-то способ справиться с этим.

ответ

1

Вот один из способов использования UNION ALL:

select name, count(1) cnt 
from (
    select col1 as name from yourtable 
    union all 
    select col2 from yourtable 
) t 
group by name 

Результаты:

NAME CNT 
----------- 
beth 1 
don 1 
jon 1 
lisa 3 
mike 1 
sam 3 
0

попробовать этот

select name , count(*) as appearances from 
(
    select col1 as name from Raw 
    union all 
    select col2 as name from Raw 
)t 
group by name 

DEMO HERE

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