2013-04-30 4 views
5

나는 두 열에 하나의 이름이 몇 번 나타나는지 계산하려고하는 mysql 데이터베이스에 두 개의 열을 가지고있다. COUNT 함수 자체는 하나의 열에있는 합계 만 계산하기 때문에 작동하지 않습니다.SQL은 여러 열에 값이 나타나는 횟수를 계산합니까?

MySQL을 열 :

+-----------------+--------------+ 
| Member1   | Member2  | 
+-----------------+--------------+ 
| John   | Bill   | 
| Bill   | John   | 
| Joe    | John   | 
| Bill   | Joe   | 
| John   | Steve  | 
+-----------------+--------------+ 

원하는 출력 :

+-----------------+--------------+ 
| Member   |  Total | 
+-----------------+--------------+ 
| John   | 4   | 
| Bill   | 3   | 
| Joe    | 2   | 
| Steve   | 1   | 
+-----------------+--------------+ 

어떤 아이디어가? 감사!

+1

가능한 복제본 [SQL, 여러 열로 계산 한 다음 그룹화] (http://stackoverflow.com/questions/12354207/sql-count-in-multiple-columns-then-group-by) –

답변

10

다음을 사용하면 UNION ALL을 사용하여 여러 열의 멤버를 단일 열로 고정 할 수 있습니다. 하나의 이름이 잘못 될 것 SQL 결과 이상, 1 열에서 2 회 이상 나타나면

select member, count(*) Total 
from 
(
    select member1 as member 
    from yt 
    union all 
    select member2 
    from yt 
) d 
group by member 
order by total desc; 

SQL Fiddle with Demo

0

를 참조하십시오 : 그것은 하나의 열에되면, 당신은 집계 함수 count을 적용 할 수 있습니다. 하위 쿼리에서 "distinct"문으로 시도하십시오.

관련 문제