在自訂查詢中使用參數

您可以透過參數,將資料來源的參數傳回至基礎 SQL 查詢,建立可自訂的動態報表。如要在自訂查詢中使用參數,請按照「執行參數化查詢」一文中的語法規範操作。


標準參數

您可以在任何自訂查詢中使用下列參數:

參數

目的

@DS_START_DATE

取得報表日期範圍的開始日期。

@DS_END_DATE

取得報表日期範圍的結束日期。

@DS_USER_EMAIL

取得登入使用者的電子郵件地址。

如要使用這些參數,請按照下列步驟操作:

  1. 在連線面板的「Parameters」(參數) 部分,啟用要使用的參數。啟用 @DS_USER_EMAIL 參數時,數據分析會提示您授予電子郵件地址的存取權。
  2. 在查詢中輸入參數名稱時,請使用大寫格式。

數據分析會將所有參數值做為文字字串傳遞。如要將參數字串當做日曆日期、數字或其他資料類型處理,請使用適當的 SQL 轉換函式,例如 PARSE_DATEPARSE_TIMESTAMPCAST

使用日期參數將日期範圍傳遞至基礎查詢

如果報表包含日期範圍控制項,檢視者可以直接透過資料庫,使用該控制項要求不同的開始和結束日期。

使用電子郵件參數提供資料列層級的資料存取權

您可以使用電子郵件地址參數,只顯示與報表、資料來源或探索作業登入使用者相關聯的資料。該使用者必須登入 Google 帳戶,並同意將電子郵件地址提供給數據分析。如果檢視者不同意,報表中所有以這個資料來源為基礎的圖表都會顯示授權錯誤。


自訂參數

您可以在自訂查詢中使用在數據分析使用者介面中建立的任何參數。

在連線頁面中建立參數

  1. 在自訂查詢編輯器的「參數」部分,按一下「+ 新增參數」
  2. 設定參數選項
  3. 按一下 [確定]

隱藏資料來源中的自訂參數

根據預設,報表編輯者可以直接在報表中修改自訂參數。如要禁止報表編輯者變更參數值,可以直接在資料來源設定中隱藏參數:

  1. 按一下「更多選項」圖示
  2. 按一下「隱藏」

進一步瞭解如何在報表中允許使用資料來源參數


在自訂查詢中使用參數

在自訂 SQL 查詢的主體中,將硬式編碼值替換為以 @ 字元開頭的 ID (例如 @param_name)。


參數範例

以下是使用參數的範例:

自訂參數範例

SELECT word FROM `TABLE` WHERE corpus = @corpus;

字串,包含 CONTAINS 和數值門檻

SELECT * FROM `bigquery-public-data.baseball.games_post_wide`
WHERE REGEXP_CONTAINS(gameId, @s)
AND attendance > @attendance LIMIT 100;

多選字串參數

請注意,UNNEST 會如何將多選參數值的陣列清單扁平化:

SELECT * from user.users as user WHERE display_name in UNNEST(@name);

使用標準格式的日期參數

SELECT creation_date, age, display_name from user.users as user
WHERE creation_date > PARSE_DATE('%Y%m%d', @DS_START_DATE)
AND creation_date < PARSE_DATE('%Y%m%d', @DS_END_DATE);

使用 Unix 時間戳記 (以微秒為單位) 的日期參數

SELECT creation_date, age, display_name from user.users as use
WHERE creation_date > UNIX_MICROS(PARSE_TIMESTAMP('%Y%m%d', @DS_START_DATE))
AND creation_date < UNIX_MICROS(PARSE_TIMESTAMP('%Y%m%d', @DS_END_DATE))

電子郵件參數範例

SELECT * FROM Sales WHERE sales-rep-email = @DS_USER_EMAIL;