2017-12-21 17 views
0

저는 직장에서 수퍼 셋을 구현해 왔으며 지금까지 그 점이 마음에 들었습니다. 그러나 나는 그런 표를 가지고있다 :Apache Superset에서 사용자 정의 메트릭을 정의하는 방법은 무엇입니까?

name,age,gender 
John,42,M 
Sally,38,F 
Patricia,27,F 
Steven,29,M 
Amanda,51,F 

더 젊은 사람들의 수를 세면서 각 이름에 대해 새로운 측정 항목을 정의하고 싶다. 내 데이터는 MySQLdatabase에, 나는 한 사람, 내가 이렇게 쿼리를 작성할 수 있다고 가정 해 말에 대한

SELECT COUNT(DISTINCT name) from users where users.age <= 42; 

, 존의 행. 그렇다면이 테이블을 전체 테이블에 대해 어떻게 연속적으로 수행합니까?

+0

이 테이블에 몇 개의 레코드가 있고 예상합니까? 표준 접근법은 <= 연산자를 사용하여 자체 조인을하는 것입니다. 큰 테이블에서는 거대한 결과를 얻을 수 있습니다. – Shadow

+0

현재 행당 7800 개의 행과 약 80 개의 행이 있습니다. – Vinay87

답변

0

귀하의 쿼리의 포인트를 그림자하기

select *, 
    (select count(distinct all_users.name) from users all_users where all_users.age <= users.age) 
FROM users 

같은 것을 볼 수 있었다 -이 큰 데이터 세트에서 실행하는 것은 매우 비싼 얻을 것입니다.

그럴 경우 나이에 인덱스를 넣거나 해당 개수를 역 정규화하는 것이 좋습니다. 삽입이 더 느리게되는 것은 절충점입니다.