2013-12-23 3 views
0

하이브를 사용하여 AB 테스트 데이터에 대한 쿼리를 실행합니다. 여기서 문제는 무시하려고하는 중복 데이터가 있다는 것입니다. 다행히도 우리는 중복 된 데이터를 무시할 수있는 방법이 있습니다. Google의 conversion_meta 열에는이 중복 데이터에 대한 표시기가 있습니다.고유 한 값 쌍을 기준으로 행 수 계산

distinct (conversion_meta, conversion_type)을 찾고 싶습니다. 그래도 정확한 구문을 이해할 수는 없습니다. 같이해야 최종 결과에

select conversion_type, day, sum(if(is_control='true', 1, 0)) as Control, 
sum(if(is_control='false', 1, 0)) as Test from Actions 
where day > "2013-12-20" and experiment_key='xyz' group by conversion_type, day 

열 : 여기에 지금까지 무엇을 가지고

변환 유형, 일, 제어 (카운트), 테스트 나는 당신을 생각

+0

conversion_meta는 어떻게 작동합니까? – PeterRing

+0

@PeterRing은 단지 json blob이지만, 기본적으로이 경우에는 1 개의 키가 있습니다. 이 경우 주문 ID 만 포함됩니다. 단일 전환 유형에 대한 주문 ID가 여러 번 표시되면 중복됩니다. 고유 한 메타 및 전환 유형 만 계산하고 이상적 일 수있는 그룹으로 분류하는 방법이 있다면 – Parris

답변

0

을 (계산) 노동 조합과 함께이 문제를 해결할 수 있습니다. :

select conversion_type, day, sum(if(is_control='true', 1, 0)) as Control, 
sum(if(is_control='false', 1, 0)) as Test from Actions 
where day > "2013-12-20" and experiment_key='xyz' and conversion_meta = false 
group by conversion_type, day 
UNION ALL 
select conversion_type, day, sum(if(is_control='true', 1, 0)) as Control, 
sum(if(is_control='false', 1, 0)) as Test from Actions 
where day > "2013-12-20" and experiment_key='xyz' and conversion_meta = true 
group by conversion_type, day 
+0

흠 음 conversion_meta가 true/false가 아니며 주문 ID가있는 json blob입니다. 그것이 그 안에있는 유일한 것입니다. Soooo는 distinct conversion_meta/conversion_type을 찾고 일별로 계산하는 좋은 방법이 있습니까? – Parris

관련 문제