首页 > 解决方案 > SQL(使用 LookML)是否能够基于日期字段左连接多个表(4)?

问题描述

我目前正在开发一个 LookML 探索模型,它 LEFT JOINs 4 个表,每个表都有 PID 的 PK。4 个表之间的数据粒度不同,这会导致重复问题和不正确的计数总数。

有没有办法通过使用我们仓库中设置的 DIMDATE 表在 4 个表之间的 Date 列上进行 LEFT JOIN?

这是当前的探索 LookML:

 ### SMS ####################
explore: stg_mysql_twiliooutboundsms {
  group_label: "Usage"
  label: "SMS"

  join: dimaccount {
    sql_on: ${dimaccount.pid} = ${stg_mysql_twiliooutboundsms.pid};;
    type: left_outer
    relationship: many_to_one
  }

  join: stg_mysql_twilioinboundsms {
    sql_on: ${stg_mysql_twiliooutboundsms.pid} = ${stg_mysql_twilioinboundsms.pid} ;;
    type: left_outer
    relationship: one_to_one
  }

  join: stg_mysql_telnyxoutboundsms {
    sql_on: ${stg_mysql_twiliooutboundsms.pid} = ${stg_mysql_telnyxoutboundsms.pid} ;;
    type: left_outer
    relationship: one_to_one
  }

  join: stg_mysql_telnyxinboundsms {
    sql_on: ${stg_mysql_twiliooutboundsms.pid} = ${stg_mysql_telnyxinboundsms.pid}  ;;
    type: left_outer
    relationship: one_to_one
  }
}

标签: sqldata-visualizationlooker

解决方案


是的,您可以将所有表格连接到每个日期一行的表格中。但是,问题归结为非对称聚合。Looker 应该通过在 SQL 中使用 MD5 哈希函数计算重复行来正确处理这个问题。如果不是,那是因为

  1. 你的主键不正确
  2. 您的加入逻辑是错误的(很可能是关系)。

请先检查以上两项。


推荐阅读