維度、篩選器和參數類型

本頁面是指 type 參數,該參數是維度篩選器的一部分。

type 也可以做為測量的一部分,詳情請參閱「測量類型」說明文件頁面。

type 也可做為維度群組的一部分,詳情請參閱 dimension_group 參數說明文件頁面。

用量

view: view_name {
  dimension: field_name {
    type: field_type
  }
}
階層
type
可能的欄位類型
維度、篩選器、參數

預設值
string

接受
維度、篩選器或參數類型

本頁面提供更多詳細資料,說明可指派給 dimensionfilterparameter 的各種型別。維度、篩選器或參數只能有一種型別,如果未指定型別,預設為 string

部分類型有支援參數,詳情請參閱相關章節。

類型定義

D = 維度
DG = 維度群組
F = 篩選器
P = 參數
類型 說明 有效欄位類型
bin 新增 21.14 將數值分組為多個範圍的欄位 D
date 含有日期的欄位 D F P
date_time 包含日期和時間的欄位 D F P
distance 針對計算兩個 type: location 維度之間最短路徑距離 (直線距離) 的欄位 D
duration dimension_group 搭配使用,可從單一資料表欄建立多個以時間長度為準的維度。如要瞭解維度群組,請參閱 dimension_group 參數說明文件頁面。 DG
location 適用於以經緯度為準,且會用於視覺化效果的欄位 D
number 包含數字的欄位 D F P
string 含有字母或特殊字元的欄位 D F P
tier 將數值分組為多個範圍的欄位 D
time dimension_group 搭配使用,可從單一資料表欄建立多個時間維度。如要瞭解維度群組,請參閱 dimension_group 參數說明文件頁面。 DG
unquoted 對於值會直接插入 SQL 的 parameter 欄位,不應加上引號 (如同 type: string) P
yesno 顯示某事物是否為真或為假的欄位 D F P
zipcode 含有郵遞區號且會用於視覺化效果的欄位 D
個別時間和日期類型 很少使用的 type: time 替代方案,可建立單一的時間維度 D F
個別時間長度類型 很少使用的 type: duration 替代方案,可建立單一時間維度,計算時間差 D
int 已移除 5.4 已替換為 type: number D

bin

type: bintype: tier 的別名。這兩種型別可以交替使用。

type: bin 會與 bins 參數搭配使用,將數值維度分成一組數值範圍。舉例來說,您可以將年齡維度分組為不同的年齡範圍。您可以使用 style 參數,變更 Looker 使用者介面中顯示的資料區間。

使用模式如下:

view: view_name {
  dimension: field_name {
    type: bin
    bins: [numeric_value, numeric_value, ... ]
    style: interval
    sql: ${my_field_name} ;;
  }
}

type: bin 維度的 sql 參數可以採用任何有效的 SQL 運算式,只要結果是數字或整數即可。

以下是使用年齡的範例:

dimension: age_bin {
  type: bin
  bins: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
  style: interval
  sql: ${age} ;;
}

如要瞭解這項參數在 Looker 使用者介面中的顯示方式,請參閱本頁的 style type: tier 參數部分。

bin 型別是 type: tier 的別名。這兩種型別可以交替使用,行為相同:

  • style 子參數可用於自訂 Looker UI 中資料夾的外觀。
  • Dimensions of type: bin 無法用於自訂篩選器
  • 如果同時使用 type: bin維度填補,可能會導致非預期的層級區間。

distance

type: distance 用於計算兩個 type: location 維度之間最直接路徑的距離 (即「直線距離」)。

系統會排除 type: distance 維度的 sql 參數。請改為在 start_location_fieldend_location_field 參數中,提供 type: location 維度的參照。

使用方式:

view: view_name {
  dimension: field_name {
    type: distance
    start_location_field: field_name_1
    end_location_field: field_name_2
    units: kilometers
  }
}

距離單位取決於 units 參數,該參數可採用下列值:

  • feet
  • kilometers
  • meters
  • miles
  • nautical_miles
  • yards

舉例來說,您可能會像這樣計算顧客取車的行車距離:

dimension: distance_to_pickup {
  type: distance
  start_location_field: customer.home_location
  end_location_field: rental.pickup_location
  units: miles
}

系統計算的距離是兩點之間最直接的路徑,不一定是道路行駛距離。

請勿在 start_location_fieldend_location_field 參數中使用 ${view_name.field_name} 語法。請改為單獨使用檢視區塊名稱和欄位名稱,例如 view_name.field_name

duration

type: duration 會與 dimension_group 搭配使用,建立一組維度和/或 SQL 運算式之間的計算時間差。

type: duration只能搭配 dimension_group 使用,無法搭配一般 dimension 使用。不過,您可以指定個別以時間長度為準的維度,詳情請參閱「個別時間長度類型」。

如要瞭解含有 type: duration 的維度群組,請參閱 dimension_group 參數說明文件頁面。

location

type: location 會與 sql_latitudesql_longitude 參數搭配使用,建立要繪製在地圖靜態地圖 (點) 視覺化效果上的座標 (使用州或國家/地區欄位做為靜態地圖 (區域)),或用於 type: distance 計算。

使用模式如下:

view: view_name {
  dimension: field_name {
    type: location
    sql_latitude:${field_name_1} ;;
    sql_longitude:${field_name_2} ;;
  }
}

系統會排除 type: location 維度的 sql 參數。請改為在 sql_latitudesql_longitude 參數中提供任何有效的 SQL 運算式,產生十進位經緯度。這些通常是指包含緯度或經度資訊的 LookML 欄位,但如果您想顯示總部位置或類似資訊,也可以使用靜態值。

舉例來說,您可以建立如下所示的 store_location 維度:

dimension: store_location {
  type: location
  sql_latitude: ${store_latitude} ;;
  sql_longitude: ${store_longitude} ;;
}

如果不想繪製位置或計算距離,可以使用較簡單的欄位類型,例如 type: number。在資料表中查看位置時,Looker 會顯示資料庫中的值,並自動產生該位置的 Google 地圖連結。

location 支援的資料庫方言

如要讓 Looker 支援 Looker 專案中的 type: location,資料庫方言也必須支援這項功能。下表列出最新版 Looker 支援 type: location 的方言:

方言 是否支援?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13+
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud AlloyDB for PostgreSQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica

number

type: number 可與數字或整數搭配使用。

type: number 維度的 sql 參數可以採用任何有效的 SQL 運算式,只要結果是數字或整數即可。

您可以使用 value_formatvalue_format_name 參數,設定 type: number 欄位的格式。

舉例來說,下列 LookML 會根據 revenuecost 欄位建立名為 profit 的欄位,然後以貨幣格式 ($1,234.56) 顯示該欄位:

dimension: profit {
  type: number
  sql: ${revenue} - ${cost} ;;
  value_format_name: usd
}

維度只能對其他維度執行算術運算,不能對指標執行。此外,即使您使用 type: number 維度顯示 ID 號碼,系統也不會向使用者提供建議。

string

type: string 通常用於含有字母或特殊字元的欄位。雖然也可以搭配數字欄位使用,但如果使用 type: number,Looker 會有更完善的數字處理功能。

type: string 維度的 sql 參數可採用任何有效的 SQL 運算式。

舉例來說,下列 LookML 會結合名為 first_namelast_name 的欄位,建立 full_name 欄位:

dimension: full_name {
  type: string
  sql: CONCAT(${first_name}, ' ', ${last_name}) ;;
}

在本例中,type: string 可以省略,因為 stringtype 的預設值。

tier

您可以使用 type: bin 做為 type: tier 的別名。這兩種型別可以交替使用。

type: tier 會與 tiers 參數搭配使用,將數值維度分成一組數值範圍。舉例來說,您可以將年齡維度分層為不同的年齡範圍。您可以使用 style 參數,變更層級在 Looker UI 中的顯示方式。

使用模式如下:

view: view_name {
  dimension: field_name {
    type: tier
    tiers: [numeric_value, numeric_value, ... ]
    style: interval
    sql: ${my_field_name} ;;
  }
}

type: tier 維度的 sql 參數可以採用任何有效的 SQL 運算式,只要結果是數字或整數即可。

年齡範例如下:

dimension: age_tier {
  type: tier
  tiers: [0, 10, 20, 30, 40, 50, 60, 70, 80]
  style: classic # the default value, could be excluded
  sql: ${age} ;;
}

如要瞭解這項設定在 Looker UI 中的顯示方式,請參閱本頁的「style」一節。

type: tier 的維度無法用於自訂篩選器

style

style 參數可變更層級在 Looker UI 中的顯示方式。雖然下列各節的範例未顯示,但如果資料中有負數,就會有起始層級,包含從負無限大到 0 (不含 0) 的所有數字。可能的值有四個:

classic

預設值為 style: classic,外觀如下:

使用者年齡層 (傳統版) 使用者人數
T02 [10,20) 949
T03 [20,30) 2,161
T04 [30,40) 2,114
T05 [40,50) 2,081
T06 [50,60) 2,024
T07 [60,70) 1,511
T08 [70,inf) 1,450

  • 您可以按照下列方式解讀這項層級標記:
    • T02 [10,20) 是指包含 10,但不包含 20 的範圍
    • T09 [80,inf) 是包含 80 的範圍,上限為無限大

interval

style: intervalstyle: classic 類似,但沒有開頭的 TXX 標籤。看起來像這樣:

使用者年齡層 (間隔) 使用者人數
[10,20) 949
[20,30) 2,161
[30,40) 2,114
[40,50) 2,081
[50,60) 2,024
[60,70) 1,511
[70,inf) 1,450

integer

style: integer 必須搭配離散整數值 (例如年齡) 使用。如果您嘗試使用非整數定義層級,系統會傳回錯誤。這個樣式如下所示:

使用者年齡層 (整數) 使用者人數
10 至 19 949
20 至 29 2,161
30 至 39 2,114
40 至 49 2,081
50 至 59 歲 2,024
60 至 69 歲 1,511
70 以上 1,450

relational

style: relational 最適合用於連續數字 (例如金額),格式如下:

使用者年齡層 (關聯) 使用者人數
>=10 且 < 20 949
>=20 且 < 30 2,161
>=30 且 < 40 2,114
>=40 且 < 50 2,081
>=50 且 < 60 2,024
>=60 且 < 70 1,511
>=70 1,450

你也可以使用 value_format 設定層級樣式。例如:

dimension: amount_tier {
  type: tier
  tiers: [0, 10, 20, 30, 40, 50, 60, 70, 80]
  style: integer
  sql: ${amount} ;;
  value_format: "$#,##0"
}

這個範例會產生 $10 to $19$20 to $29 等級別標籤。

注意事項

如果同時使用 tier維度填補,可能會導致非預期的層級區間。

舉例來說,如果啟用維度填補功能,即使資料不含「低於 0」和「0 到 9」年齡層的年齡值,系統仍會顯示「年齡層」type: tier維度的層級區間:

使用者年齡層級
低於 0
0 至 9
10 至 19
20 至 29
30 至 39
40 至 49
50 至 59 歲
60 至 69 歲
70 至 79
80 以上

如果停用「年齡層」的維度填補功能,系統會根據資料中的可用年齡值,更準確地劃分區塊:

使用者年齡層級
10 至 19
20 至 29
30 至 39
40 至 49
50 至 59 歲
60 至 69 歲
70 至 79
80 以上

如要啟用或停用維度填補功能,請將滑鼠游標懸停在「探索」中的維度名稱上,按一下欄位層級的齒輪圖示,然後選取「移除填入的層級值」來停用,或選取「填入缺少的層級值」來啟用。

time

type: time 會與 dimension_grouptimeframes 參數搭配使用,建立一組以時間為準的維度。舉例來說,您可以根據單一時間戳記欄建立日期、週和月份維度。

type: time只能搭配 dimension_group 使用,無法搭配一般 dimension 使用。不過,您可以指定個別的時間維度,詳情請參閱「個別時間和日期類型」一節。

如要瞭解維度群組,請參閱 dimension_group 參數說明文件頁面,其中也包含 timeframesconvert_tzdatatype 參數的相關資訊,以及使用時間資料時應注意的常見問題和注意事項。

unquoted

type: unquoted 僅適用於 parameter 欄位。unquoted 類型與 type: string 類似,但將 parameter 的值插入 {% parameter %} Liquid 變數時,不會加上引號。將值插入 SQL 時,如果無法加上引號,就無法正常運作,這時就很有用,例如資料欄或資料表名稱。

直接將未加引號的值插入 SQL,可能會導致不必要的 SQL 動作。為解決這個問題,type: unquoted 的參數值僅限使用 A 至 Z 和 0 至 9 的字元 (不得包含空格或其他特殊字元)。

舉例來說,下列 LookML 會建立名為 table_nameparameter,產生未加引號的值:

parameter: table_name {
  type: unquoted
}

yesno

type: yesno 會建立欄位,指出某件事是 true 還是 false。在探索使用者介面中,這些值會顯示為「是」和「否」

type: yesno 維度的 sql 參數會採用有效的 SQL 運算式,評估結果為 TRUEFALSE。如果條件評估結果為 TRUE,系統會向使用者顯示「是」;否則會顯示「否」

type: yesno 維度的 SQL 運算式不得包含任何匯總。也就是說,不得包含 SQL 匯總或任何 LookML 測量指標的參照。如要建立包含 SQL 匯總或參照 LookML 測量的 yesno 欄位,請使用 type: yesno測量,而非維度。

舉例來說,下列 LookML 會根據 status 欄位建立欄位,指出訂單是否已付款:

dimension: is_order_paid {
  type: yesno
  sql: ${status} = 'paid' ;;
}

如要在其他欄位中參照 type: yesno 欄位,請將 type: yesno 欄位視為布林值 (換句話說,視為已包含 true 或 false 值)。例如:

dimension: is_big_order {
  type: yesno
  sql: ${order_size} = 'big' ;;
}
# This is correct
measure: total_boxes_needed {
  type: number
  sql: SUM(CASE WHEN ${is_big_order} THEN 2 ELSE 1 END) ;;
}
# This is NOT correct
measure: total_boxes_needed {
  type: number
  sql: SUM(CASE WHEN ${is_big_order} = 'Yes' THEN 2 ELSE 1 END) ;;
}

如果將 type: yesno 與時間型資料搭配使用,維度會在日期時間有值時傳回「是」,沒有值時則傳回「否」

zipcode

type: zipcode 可搭配您要在靜態地圖 (點) 視覺化圖表上繪製的郵遞區號維度使用 (如要使用靜態地圖 (區域),請使用州或國家/地區欄位)。系統會自動為 type: zipcode 的任何維度提供 map_layer_nameus_zipcode_tabulation_areas。如果不想繪製郵遞區號,可以使用較簡單的型別,例如 type: number

type: zipcode 維度的 sql 參數可以採用任何有效的 SQL 運算式,只要結果是美國五位數的郵遞區號即可。

如要依郵遞區號維度篩選,部分資料庫方言會要求郵遞區號維度參照的資料庫欄位為 varchar 或字串類型欄位,而非整數類型欄位。

例如:

dimension: zip {
  type: zipcode
  sql: ${TABLE}.zipcode ;;
}

個別時間和日期類型

通常日期會以使用 type: timedimension_group 處理。

您可以為要納入的每個時間範圍建立一個 dimensionfilter 欄位,而不必在單一 dimension_group 中產生所有欄位。一般來說,除非您已在資料庫中預先計算時間資料欄,或想變更 Looker 時間範圍命名慣例 (例如使用名為 created_date_of_purchase 的欄位,而非 created_date),否則應避免這麼做。

可用的時間類型列出許多以時間和日期為準的類型。

舉例來說,如果 dimension_group 定義如下:

dimension_group: created {
  type: time
  timeframes: [week, month, year]
  sql: ${TABLE}.created_at ;;
}

您可以將此視為邏輯等效項目:

dimension: created_week {
  type: date_week
  sql: ${TABLE}.created_at ;;
}
dimension: created_month {
  type: date_month
  sql: ${TABLE}.created_at ;;
}
dimension: created_year {
  type: date_year
  sql: ${TABLE}.created_at ;;
}

可用的時間類型

在個別維度的 type 參數中,可使用下列類型建立以時間或日期為準的欄位。請將這些類型與 timeframe 參數搭配使用,相關說明請參閱 dimension_group 說明文件頁面。

所有個別時間和日期類型都需要從資料庫輸入時間戳記。

特殊類型

類型 說明 輸出範例
date_raw 資料庫中的原始值 (未經過轉換或時區轉換),不會顯示在「探索」頁面 (通常不需要,除非是聯結或時間比較) 2014-09-03 17:15:00 +0000

時間類型

類型 說明 輸出範例
date_time 基礎欄位的日期時間 (部分 SQL 方言會顯示資料庫所含的精確度,其他方言則只會顯示到秒) 2014-09-03 17:15:00
date_time_of_day 時段 17:15
date_hour 日期時間截斷至最接近的小時 2014-09-03 17
date_hour_of_day 基礎欄位的小時整數值 17
date_hourX 將每天分成指定時數的間隔。 請參閱「使用 date_hourX」。
date_minute 日期時間截斷至最接近的分鐘 2014-09-03 17:15
date_minuteX 將每小時分成指定分鐘數的間隔。 請參閱「使用 date_minuteX」。
date_second 日期時間 (四捨五入至最接近的秒數) 2014-09-03 17:15:00
date_millisecond 日期時間截斷至最接近的毫秒 (如需方言支援的相關資訊,請參閱「支援毫秒和微秒的方言」一節) 2014-09-03 17:15:00.000
date_millisecondX 將每秒分割為指定毫秒數的時間間隔 (如需方言支援的相關資訊,請參閱「毫秒和微秒的方言支援」一節)。 2014-09-01 01:00:00.250
date_microsecond 日期時間截斷至最接近的微秒 (如需方言支援的相關資訊,請參閱「支援毫秒和微秒的方言」一節) 2014-09-03 17:15:00.000000

日期類型

類型 說明 輸出範例
date 基礎欄位的日期 2017-09-03
date_date 已移除 4.6 已替換為 date

週類型

類型 說明 輸出範例
date_week 以基礎日期時間的星期一為一週的開始日期 2017-09-01
date_day_of_week 僅限星期幾 Wednesday
date_day_of_week_index 星期幾索引 (0 = 星期一,6 = 星期日) 2

請注意,date_weekdate_day_of_weekdate_day_of_week_index 類型取決於 week_start_day 的值 (預設為星期一)。

月份類型

類型 說明 輸出範例
date_month 基礎日期時間的年和月 2017-09
date_month_num 基礎日期時間的月份整數 9
date_month_name 月份名稱 September
date_day_of_month 當月第幾日 3
date_fiscal_month_num 基礎日期時間的月份整數 9

如要使用 date_fiscal_month_num 類型,必須在模型中設定 fiscal_month_offset 參數。

季別類型

類型 說明 輸出範例
date_quarter 基礎日期時間的年份和季度 2017-Q3
date_quarter_of_year 季度,以「Q」開頭 Q3
date_fiscal_quarter 基礎日期時間的會計年度和季度 2017-Q3
date_fiscal_quarter_of_year 會計年度的季度,前面加上「Q」 Q3

如要使用 date_fiscal_quarterdate_fiscal_quarter_of_year 類型,必須在模型中設定 fiscal_month_offset 參數。

年類型

類型 說明 輸出範例
date_year 基礎日期時間的整數年份 2017
date_day_of_year 一年中的第幾天 143
date_week_of_year 以數字表示的週次 17
date_fiscal_year 基礎日期時間的整數會計年度 2017

如要使用 date_fiscal_year 類型,必須在模型中設定 fiscal_month_offset 參數。

正在使用 date_hourX

date_hourX 中,X 會替換為 2、3、4、6、8 或 12。

系統會將每天分成指定時數的間隔。舉例來說,date_hour6 會將每天分成 6 小時的區段,顯示方式如下:

  • 2014-09-01 00:00:00
  • 2014-09-01 06:00:00
  • 2014-09-01 12:00:00
  • 2014-09-01 18:00:00

舉例來說,如果資料列的 time2014-09-01 08:03:17,則 date_hour62014-09-01 06:00:00

正在使用 date_minuteX

date_minuteX 中,X 會替換為 2、3、5、10、15 或 30。

使用 date_minuteX 會將每小時劃分為指定分鐘數的間隔。舉例來說,date_minute15 會將每小時劃分為 15 分鐘的區間,顯示方式如下:

  • 2014-09-01 01:00:00
  • 2014-09-01 01:15:00
  • 2014-09-01 01:30:00
  • 2014-09-01 01:45:00

舉例來說,如果某列的 time2014-09-01 01:17:35,則該列的 date_minute15 會是 2014-09-01 01:15:00

時區和 convert_tz

一般來說,只有在所有時間值都轉換為相同時區時,時間計算 (差異、持續時間等) 才能正確運作,因此撰寫 LookML 時,請務必留意時區。

Looker 提供各種時區設定,可在不同時區之間轉換時間資料。Looker 預設會轉換時區。如果您不希望 Looker 對特定維度或維度群組執行時區轉換,可以使用 convert_tz 參數說明頁面所述的 convert_tz 參數。

支援毫秒和微秒的方言

Looker 支援微秒精確度,但部分資料庫僅支援秒數精確度。如果資料庫遇到比支援的精確度更高的時間類型,系統會將時間四捨五入至秒。

在最新版 Looker 中,下列方言支援毫秒:

方言 是否支援?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13+
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud AlloyDB for PostgreSQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica

在最新版 Looker 中,下列方言支援微秒:

方言 是否支援?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13+
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud AlloyDB for PostgreSQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica

個別時間長度類型

通常,時間長度會以使用 type: durationdimension_group 處理。

您可以為要納入的每個時間長度建立一個 dimension,而不必在單一 dimension_group 中產生所有時間長度。除非您想變更 Looker 時間範圍命名慣例 (例如將「Duration to Delivery」欄位改名為「Number of Days to Delivery」),否則一般會避免這麼做。

如需個別時間長度類型,請參閱這篇文章

為維度使用時間長度類型時,您也必須加入 sql_startsql_end 參數,提供開始和結束時間,以計算時間差。

sql_startsql_end 參數可採用任何有效的 SQL 運算式,其中包含時間戳記、日期時間、日期、紀元或 yyyymmdd 格式的資料。sql_startsql_end 欄位可以是下列任一項目:

  • 參照type: time現有維度群組中的raw時間範圍。
  • type: date_raw 維度的參照。
  • 時間戳記的 SQL 運算式,例如參照時間戳記的 SQL 資料欄。
  • SQL 運算式,可使用適合方言的運算式,從資料庫擷取時間。

舉例來說,如果 dimension_group 定義如下:

dimension_group: to_delivery {
  type: duration
  intervals: [day, hour]
  sql_start: ${created_raw} ;;
  sql_end: ${delivered_raw};;
}

您可以將這些 dimension 參數視為邏輯等效項目:

dimension: number_of_days_to_delivery {
  type: duration_day
  sql_start: ${created_raw} ;;
  sql_end: ${delivered_raw};;
}

dimension: number_of_hours_to_delivery {
  type: duration_hour
  sql_start: ${created_raw} ;;
  sql_end: ${delivered_raw};;
}

在「探索」使用者介面中,這會建立名為「Number of Days to Delivery」和「Number of Hours to Delivery」的維度。

可用的時間長度類型

個別維度的 type 參數會使用下列類型建立以時間長度為準的欄位。請將這些類型與 intervals 參數搭配使用,相關說明請參閱 dimension_group 說明文件頁面。

所有個別的時長類型都需要資料庫提供時間戳記做為輸入內容。

類型 說明 輸出範例
duration_day 計算天數的時間差 9 days
duration_hour 計算時差 (以小時為單位) 171 hours
duration_minute 以分鐘為單位計算時差 10,305 minutes
duration_month 計算以月為單位的時間差 3 months
duration_quarter 以季為單位計算時間差 2 quarters
duration_second 計算時間差 (以秒為單位) 606,770 seconds
duration_week 以週為單位計算時差 6 weeks
duration_year 計算以年為單位的時間差 2 years