두 개의 열 X, Y가있는 테이블이 있습니다. 두 열 모두에서 각 레코드의 출현 횟수를 계산하고 싶습니다. 예 :
X | Y
A | A
B | A
B | C
D | C
결과는
variable | X_count | Y_count
A | 1 | 2
B | 2 | 0
C | 0 | 2
D | 1 | 0
mysql에서 어떻게 이것을 달성합니까?
편집 : 좋아, 몇 시간을 보낸 후 Y의 모든 값이 X의 하위 집합임을 확인했습니다. 즉, X_count는 어떤 변수에도 0이되지 않습니다. 이것이 최적화에 도움이됩니까?
나는 당신이 유니온 임시 테이블과 그룹이 필요하다고 생각합니다.
select v.variable, a.count(*), b.count(*)
from
(select x as variable
from my_table
union select y
from my_table ) as v
inner join my_table as a on a.X = v.variable
inner join my_table as b on b.y = v.variable
group by v.variable
Y가 X의 하위 집합이라는 사실은 합집합을 피할 수있게 해주지 만 어쨌든 우리는 별개의 X가 필요합니다.
select v.variable, a.count(*), b.count(*)
from
(select distinct x as variable
from my_table ) as v
inner join my_table as a on a.X = v.variable
inner join my_table as b on b.y = v.variable
group by v.variable
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다