본문 바로가기
분석/데이터분석

[redash] 쿼리에서 필터 사용법 (filter, multi-filter)

by 여우요원 2022. 6. 7.
반응형

본 글은 redash(리대시)에서 필터(drop-down list) 사용법에 관한 내용이다.

 

리대시에서는 drop-down list 를 사용할 때,

(1) {{파라메터명}} 의 형식으로 사용되는 파라메터를 filter 로 사용하는 방식이 있고

(2) 쿼리문장에서 쿼리결과의 내용을 중심으로 필터를 사용할 수 있다.

 

이 글에서는 두 번째 방법인 쿼리문장에서 필터를 사용하는 방법에 대해서 설명할 것이고, 단순 선택 필터 멀티 선택 필터 이렇게 두 가지 방법에 대해서 알아볼 것이다. 

 

아래와 같이 list 라는 이름의 테이블이 있다고 가정하자. 

with 
list(uid, area, age_band) as ( values 
    (1, '서울', '10대'),
    (2, '서울', '20대'),
    (3, '경기', '30대'),
    (4, '경기', '40대'),
    (5, '부산', '50대'),
    (6, '부산', '60대'),
    (7, '광주', '10대'),
    (8, '광주', '20대'),
    (9, '제주', '30대'),
    (10, '제주', '40대'),
    (11, '서울', '50대'),
    (12, '서울', '60대')
)
select uid, area, age_band
from list

여기에서 with 구문은 테이블의 row를 구성하기 위한 부분이고, 단순히 아래와 같은 테이블이 있다고 가정을 하자. 

 

[A] 단순 필터 

아래의 쿼리는 area 라는 컬럼을 "지역" 으로 컬럼명을 변경하고 (alias), 단순 필터를 건 모습니다.

-- 단순 필터
with 
list(uid, area, age_band) as ( values 
    (1, '서울', '10대'),
    (2, '서울', '20대'),
    (3, '경기', '30대'),
    (4, '경기', '40대'),
    (5, '부산', '50대'),
    (6, '부산', '60대'),
    (7, '광주', '10대'),
    (8, '광주', '20대'),
    (9, '제주', '30대'),
    (10, '제주', '40대'),
    (11, '서울', '50대'),
    (12, '서울', '60대')
)
select uid, area as "지역::filter", age_band
from list

 

리대시의 결과에서는 아래와 같이 drop-down 리스트를 만들어주며, 

 

필터에서 선택된 결과만을 보여준다. 

 

[B] 멀티 필터

-- 멀티 필터
with 
list(uid, area, age_band) as ( values 
    (1, '서울', '10대'),
    (2, '서울', '20대'),
    (3, '경기', '30대'),
    (4, '경기', '40대'),
    (5, '부산', '50대'),
    (6, '부산', '60대'),
    (7, '광주', '10대'),
    (8, '광주', '20대'),
    (9, '제주', '30대'),
    (10, '제주', '40대'),
    (11, '서울', '50대'),
    (12, '서울', '60대')
)
select uid, area as "지역::multi-filter", age_band as "연령대::multi-filter"
from list

위 쿼리는 area 와 age_band 라는 두 컬럼 모두 멀티 필터를 설정한 내용이다.

 

아래의 그림과 같이 두 컬럼에 대해서 여러개의 항목을 선택적으로 선택할 수 있다.

 

그래서 두 최종적으로 두 컬럼에서 선택된 필터 조건의 결과를 아래와 같이 얻을 수 있다. 

반응형