当同一个字段随时间变化时,如何构建多维度的图表?

问题描述 投票:0回答:1

考虑以下示例表:

  day  |  payment_id  |  status
---------------------------------
 Jan 1 |      1       | processing
 Jan 1 |      2       | processing
 Jan 2 |      1       | completed
 Jan 2 |      2       | processing

如您所见,它由

day
payment_id
status
组成。每笔付款可以在多天内以不同的状态出现(例如,下表中的付款 1 在不同的两天有不同的状态)。

我需要做的是在 Looker Studio(Google Data Studio)中构建一个表格,这是一个简单的堆积条形图,显示随时间变化的不同状态的付款数量。每天或每周执行此操作很容易,但是当我需要创建一个图表时,问题就出现了,您可以在其中切换不同的时间段(天、周、月等)

例如,对于日线图,1 月 1 日将显示 2 笔状态为

processing
的付款,而 1 月 2 日将显示 1 笔状态为
processing
的付款和 1 笔状态为
completed
的付款。

另一方面,对于周图表,整周它只会显示 1 笔状态为

processing
的付款和 1 笔状态为
completed
的付款。

所以对于每周图表来说,我需要获取每笔付款的最新状态。类似于

max_by
的功能,但 Looker Studio 中不存在。

是否可以创建这样一个多维度(天、周、月)的图表?如果是这样,我如何正确聚合数据?

bar-chart aggregate visualization looker-studio looker
1个回答
0
投票

基于OP中的示例表:

您可以创建一个参数供用户选择日期间隔

parameter: date_interval_param {
    allowed_value: {
      label: "Day"
      value: "day"
    }
    allowed_value: {
      label: "Week"
      value: "week"
    }
    allowed_value: {
      label: "Month"
      value: "month"
    }
    allowed_value: {
      label: "Quarter"
      value: "quarter"
    }
    allowed_value: {
      label: "Year"
      value: "year"
    }
  }

然后有一个根据该参数值更新的维度并使用现有的 Looker 时间范围选项

dimension_group: day {
   type: time
   sql: cast(${TABLE}.day as timestamp) ;;  ## field based on sample table in OP
}

dimension: date_interval_field_dash {
    sql:

    {% if date_interval_param._is_filtered %}
      {% if date_interval_param._parameter_value == "'year'" %}
        ${day_year}
      {% elsif date_interval_param._parameter_value == "'quarter'" %}
        ${day_quarter}
      {% elsif date_interval_param._parameter_value == "'month'" %}
        ${day_month}
      {% elsif date_interval_param._parameter_value == "'week'" %}
        ${day_week}
      {% elsif date_interval_param._parameter_value == "'day'" %}
        ${day_date}
      {% endif %}
    {% else %}
    YOU HAVE TO SELECT "DATE INTERVAL OPTIONS" FILTER
    {% endif %}
    ;;
  }

如果您在探索可视化中引用

date_interval_field_dash
作为维度,它将根据用户选择的间隔进行更新。

这比尝试维护包含预聚合间隔选项的表更少冗余且更灵活

© www.soinside.com 2019 - 2024. All rights reserved.