Looker에서 스프레드시트 결과의 순위를 동적 필터로 사용

※타이틀대로 & 거의 이 기사의 일본어 번역입니다.

하고 싶었던 일



사전에 view로 정의해 두는 것이 아니라, 입도나 집계축을 동적으로 바꿀 수 있는 랭크를 필터로서 사용하고 싶었다.

장애물


  • 사전에 view로 정의한 rank dimension을 사용하면, 집계축마다 복수dimension을 만들어야 한다.
  • Explore에서 TableCalcurations 기능을 사용하여 만든 계산 결과를 필터로 사용할 수 없습니다.

  • 사용하는 기술


  • parameter
  • 표 계산
  • Hide from Visualization
  • Hide "No"s from Visualization

  • 방법



    ①view에 type: number의 dimensionparameter 의 2개를 추가한다. 이때 dimension의 sql구에서는 parameter의 이름을 지정한다. (이 예에서는 max_rank)
    parameter: max_rank {
     type: number
    }
    
    dimension: rank_limit {
     type: number
     sql: {% parameter max_rank %} ;;
    }
    

    ②Explore로 이동. 좋아하는 입도로 집계해, 정렬을 가한 곳에 조금 작성한 dimension(예에서는 rank_limit)를 추가. max_rank는 filter로 추가하고 상위 몇 건 표시하고 싶은지를 입력해 둔다.


    (max_rank로 입력 한 값은 rank_limit에 전달되고 고정 값으로 표시됩니다)

    ③표 계산을 2개 작성. 1번째는 Rank로, 어느 지표로 랭킹을 작성할지를 지정. 두 번째는 Boolean으로, 이전에 작성한 Rank 계산 결과와 rank_limit를 비교하는 것. 반환값은 yesno형.


    (이 때, 표 계산을 이용하기 위해 표 안에 사용하지 않은 measure를 사용할 수 없으므로 주의)

    ④ 작성한 2개의 스프레드시트는 Hide from Visualization 한다.

    ⑤ 테이블 계산 결과인 show_in_visualization의 설정에서 Hide "No"s from Visualization을 선택하면 No가 반환하고 있는 행이 Visualization에 나오지 않게 된다.



    해설



    데이터베이스에 존재하지 않는 값에서도 사용자 측에서 임의의 값을 입력할 수 있는 parameter 필드를 미리 작성해 두고,
    그 필드와 스프레드시트 결과를 비교하여 yesno 열을 만듭니다.
    yesno 필드라면 Hide "No"s from Visualization을 사용할 수 있기 때문에,
    랭킹 상위만 표시가 실현되고 몇위까지 표시하고 싶은지도 유저측이 제어할 수 있게 된다.

    그래서, 엄밀히 말하면 Filter로서 사용하고 있는 것보다는, Visualization에 표시하고 있지 않다,
    라고 할 뿐이라고 생각한다.

    Hide "No"s from Visualization은 몰랐고, parameter와의 합치기술로서는
    좋은 스킬업 문제가 될 것 같은 내용이었다.
    parameter의 확장성의 높이를 생각하면, 아직도 응용의 여지가 있을 것 같네요.

    (Appendix) Tableau라고 했어



    rank 함수나 index 함수로 계산 필드를 만들어 필터로 적용.
    view에는 불연속값으로 넣고, 필터에는 연속값으로서 넣고 있던 기억이 있다.
    (연속치가 아니면 슬라이더의 외형으로 조작할 수 없었다)

    참고 문헌 (재 게시)

    좋은 웹페이지 즐겨찾기