LookML 中的结构将取决于您的模型。SQL 不能真正转换为 LookML,因为 LookML生成SQL,而不仅仅是翻译它。
LookML 使用视图文件来描述表,而您这里有两个表,因此您需要两个视图文件。它们可能看起来像这样,尽管我只是猜测:
view: accounts {
sql_table_name: Accounts ;;
dimension: Accounts_Unlock_Price {
type: number
sql: ${TABLE}.Accounts_Unlock_Price ;;
}
dimension: Accounts_Upfront_Price {
type: number
sql: ${TABLE}.Accounts_Upfront_Price ;;
}
dimension: Portfolio_Derived_Previous_Cumulative_Paid {
type: number
sql: ${TABLE}.Portfolio_Derived_Previous_Cumulative_Paid ;;
}
dimension: FRR {
type: number
sql: ${Portfolio_Derived_Previous_Cumulative_Paid}/(${Accounts_Unlock_Price} - ${Accounts_Upfront_Price}) * 100;;
}
dimension: Angaza_ID {
type: number
sql: ${TABLE}.Accounts_Angaza_ID ;;
}
}
view: Portfolio_derived {
sql_table_name: Portfolio_derived_20 ;;
##don't know what's in this file
dimension: Account_Angaza_ID {
type: number
sql: ${TABLE}.Portfolio_Derived_Account_Angaza_ID ;;
}
}
在视图中定义字段后,您需要将它们加入探索中,以便实际查询它们。
我再次只是在猜测,看起来你在这里做一个 CROSS 加入,但我不确定。
explore: accounts_angaza {
view_name: accounts
sql_always_where: ${Portfolio_derived.Account_Angaza_ID} = ${accounts.Angaza_ID} ;;
join: Portfolio_derived {
type: cross
}
}
这将让您在探索 UI 中打开该探索,并直观地选择解锁价格、预付价格、累计支付和 FRR,然后进行查询。这是最简单的部分,“构建查询”。更难的部分是为其奠定框架,这就是我在上面描述的内容。
如果您将 SQL 与 Looker 查询进行比较,这可能是一个有用的资源,因为它解释了 Looker 如何生成 SQL:https ://docs.looker.com/data-modeling/learning-lookml/how-looker-generates-sql
这解释了连接是如何工作的,并链接到你必须在连接之前构建的低级组件。https://docs.looker.com/data-modeling/learning-lookml/working-with-joins
祝你好运!如果您还有更多问题,可以在https://discourse.looker.com上找到大量 Looker,这也可能是未来 Looker 问题的一个很好的资源。