

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Amazon Quick 中使用資料集參數
<a name="dataset-parameters"></a>

在 Amazon Quick 中，作者可以在直接查詢中使用資料集參數來動態自訂其資料集，並將可重複使用的邏輯套用至其資料集。*資料集參數*是在資料集層級建立的參數。分析參數會透過控制項、計算欄位、篩選器、動作、URL、標題和描述使用它。如需分析參數的詳細資訊，請參閱 [Amazon Quick 中的參數](parameters-in-quicksight.md)。下列清單說明可以使用資料集參數執行的三個動作：
+  **直接查詢中的自訂 SQL** – 資料集擁有者可以將資料集參數插入直接查詢資料集的自訂 SQL 中。當這些參數套用到快速分析中的篩選條件控制項時，使用者可以更快、更有效率地篩選其自訂資料。
+ **可重複變數** – 透過自訂資料集參數，可以在一個動作中修改出現在資料集頁面中的多個位置的靜態值。
+ **將計算欄位移至資料集** – 快速作者可以在分析中使用參數複製計算欄位，並將其遷移至資料集層級。這樣可以防止分析層級的計算欄位被意外修改，並且可以在多個分析之間共用計算欄位。

在某些情況下，資料集參數可以提高需要複雜自訂 SQL 的直接查詢資料集的篩選控制效能，並簡化資料集層級的業務邏輯。

**Topics**
+ [資料集參數限制](#dataset-parameters-limitations)
+ [在 Amazon Quick 中建立資料集參數](dataset-parameters-SQL.md)
+ [將資料集參數插入自訂 SQL](dataset-parameters-insert-parameter.md)
+ [將資料集參數新增至計算欄位](dataset-parameters-calculated-fields.md)
+ [將資料集參數新增至篩選條件](dataset-parameters-dataset-filters.md)
+ [在快速分析中使用資料集參數](dataset-parameters-analysis.md)
+ [資料集參數的進階使用案例](dataset-parameters-advanced-options.md)

## 資料集參數限制
<a name="dataset-parameters-limitations"></a>

本節涵蓋您在 Amazon Quick 中使用資料集參數時可能遇到的已知限制。
+ 當儀表板讀取器排程透過電子郵件寄送的報告時，選取的控制項不會傳播到電子郵件所附報告中包含的資料集參數。相反，使用的是參數的預設值。
+ 資料集參數無法插入儲存在 SPICE 中的資料集的自訂 SQL 中。
+ 動態預設值只能在使用資料集之分析的分析頁面上設定。您不能在資料集層級設定動態預設值。
+ 對應至資料集參數的分析參數的多值控制項不支援**全選**選項。
+ 資料集參數不支援階層式控制項。
+ 只有在資料集使用直接查詢時，資料集篩選器才能使用資料集參數。
+ 在自訂 SQL 查詢中，只能使用 128 個資料集參數。

# 在 Amazon Quick 中建立資料集參數
<a name="dataset-parameters-SQL"></a>

請依下列程序開始使用資料集參數。

**若要建立新的資料集參數**

1. 在快速開始頁面中，選擇左側**的資料**，選擇您要變更之資料集旁的省略符號 （三個點），然後選擇**編輯**。

1. 在開啟的**資料集**頁面上，選擇左側的**參數**，然後選擇 (\$1) 圖示以建立新的資料集參數。

1. 在出現之**建立新參數**快顯視窗的**名稱**方塊中輸入參數名稱。

1. 在**資料類型**下拉式清單中，選擇想要的參數資料類型。支援的資料類型包括 `String`、`Integer`、`Number` 和 `Datetime`。參數建立之後就無法變更此選項。

1. 在**預設值**中，根據您的想法輸入參數的預設值。
**注意**  
將資料集參數映射至分析參數時，可以選擇不同的預設值。如果發生這種情況，此處設定的預設值將被新的預設值覆蓋。

1. 在**值**中，根據您的想法選擇值類型。**單值**參數支援單選型下拉式清單、文字欄位和清單控制項。**多值**參數支援多選型下拉式清單控制項。參數建立之後就無法變更此選項。

1. 新參數設定完成後，選擇**建立**以建立參數。

# 將資料集參數插入自訂 SQL
<a name="dataset-parameters-insert-parameter"></a>

透過在 SQL 陳述式中使用 `<<$parameter_name>>` 引用資料集，可以在直接查詢模式下將資料集參數插入到資料集的自訂 SQL 中。在執行期，儀表板使用者可以輸入與資料集參數關聯的篩選控制項值。然後，當值傳播到 SQL 查詢之後，即可在儀表板視覺效果中看到結果。您可以使用參數，根據 `where` 子句中的客戶輸入建立基本篩選器。也可以新增 `case when` 或 `if else` 子句，根據參數的輸入動態變更 SQL 查詢的邏輯。

例如，假設您想要在自訂 SQL 中新增 `WHERE` 子句，以根據最終使用者的區域名稱篩選資料。在這種情況下，可以建立名為 `RegionName` 的單值參數：

```
SELECT *
FROM transactions
WHERE region = <<$RegionName>>
```

也可以讓使用者為參數提供多個值：

```
SELECT *
FROM transactions
WHERE region in (<<$RegionNames>>)
```

在下列更複雜的範例中，資料集作者會根據可在儀表板篩選控制項中選取的使用者名字和姓氏，引用兩個資料集參數兩次：

```
SELECT Region, Country, OrderDate, Sales
FROM transactions
WHERE region=
(Case
WHEN <<$UserFIRSTNAME>> In 
    (select firstname from user where region='region1') 
    and <<$UserLASTNAME>> In 
    (select lastname from user where region='region1') 
    THEN 'region1'
WHEN <<$UserFIRSTNAME>> In 
    (select firstname from user where region='region2') 
    and <<$UserLASTNAME>> In 
    (select lastname from user where region='region2') 
    THEN 'region2'
ELSE 'region3'
END)
```

您也可以使用 `SELECT` 子句中的參數，在使用者輸入的資料集中建立新資料欄：

```
SELECT Region, Country, date, 
    (case 
    WHEN <<$RegionName>>='EU'
    THEN sum(sales) * 0.93   --convert US dollar to euro
    WHEN <<$RegionName>>='CAN'
    THEN sum(sales) * 0.78   --convert US dollar to Canadian Dollar
    ELSE sum(sales) -- US dollar
    END
    ) as "Sales"
FROM transactions
WHERE region = <<$RegionName>>
```

若要在新增資料集參數之前建立自訂 SQL 查詢或編輯現有查詢，請參閱 [使用 SQL 自訂資料](adding-a-SQL-query.md)。

當您套用具有資料集參數的自訂 SQL 時，`<<$parameter_name>>` 將用作預留位置值。當使用者從控制項選擇其中一個參數值時，Quick 會將預留位置取代為使用者在儀表板上選取的值。

在下列範例中，使用者輸入了新的自訂 SQL 查詢，依狀態篩選資料：

```
select * from all_flights
where origin_state_abr = <<$State>>
```

參數的預設值會套用至 SQL 查詢，且結果會顯示在**預覽窗格**中。

# 將資料集參數新增至計算欄位
<a name="dataset-parameters-calculated-fields"></a>

也可以使用 `${parameter_name}` 格式將資料集參數新增至計算欄位運算式。

當您建立計算時，可以從**參數**清單下的參數清單選擇現有參數。您不能建立含有多值參數的計算欄位。

如需新增計算欄位的詳細資訊，請參閱 [在 Amazon Quick 中使用計算欄位搭配參數](parameters-calculated-fields.md)。

# 將資料集參數新增至篩選條件
<a name="dataset-parameters-dataset-filters"></a>

對於直接查詢模式中的資料集，資料集作者可以在篩選器中使用資料集參數，無需自訂 SQL。如果資料集位於 SPICE 中，則資料集參數無法新增至篩選器。

**若要將資料集參數新增至篩選器**

1. 開啟要為其建立篩選器的資料集的資料集頁面。選擇左側的**篩選器**，然後選擇**新增篩選器**。

1. 根據您的想法輸入篩選器的名稱，然後在下拉式清單中選擇要篩選的欄位。

1. 建立新篩選器之後，瀏覽至**篩選器**窗格中的篩選器，選擇篩選器旁邊的省略符號 (三個點)，然後選擇**編輯**。

1. 選擇**自訂篩選器**作為**篩選器類型**。

1. 選擇您想要的條件作為**篩選器**。

1. 選取**使用參數**方塊，然後選擇您要篩選器使用的資料集參數。

1. 完成變更後，選擇**套用**。

# 在快速分析中使用資料集參數
<a name="dataset-parameters-analysis"></a>

一旦您建立資料集參數，將資料集新增至分析後，請將資料集參數映射至新的或現有的分析參數。將資料集參數映射至分析參數後，您可以將其與篩選器、控制項和任何其他分析參數功能一起使用。

您可以在使用參數所屬之資料集的分析的**參數**窗格中管理資料集參數。在**參數**窗格的**資料集參數**區段，您可以選擇僅查看未映射的資料集參數 (預設)。或者，可以從**檢視**下拉式清單中選擇**全部**，選擇查看所有映射和未映射的資料集參數。

## 在新的快速分析中映射資料集參數
<a name="dataset-parameters-map-to-analysis"></a>

當您從包含參數的資料集建立新分析時，必須先將資料集參數映射至分析，然後才能使用。當您將具有參數的資料集新增至分析時，也會出現這種情況。您可以透過分析的**參數**窗格，檢視分析中所有未映射的參數。或者，在建立分析或新增資料集時，於頁面右上角顯示的通知訊息中選擇**檢視**。

**若要將資料集參數映射至分析參數**

1. 開啟 [Quick 主控台](https://quicksight.aws.amazon.com/)。

1. 選擇您想要變更的分析。

1. 選擇**參數**圖示，以開啟**參數**窗格。

1. 選擇您要映射的資料集參數旁邊的省略符號 (三個點)，選擇**映射參數**，然後選擇要映射資料集參數的分析參數。

   如果您的分析中沒有任何分析參數，可以選擇**映射參數**和**新建**來建立分析參數，該參數會在建立時自動映射至資料集參數。

   1. (選用) 在出現之**建立新參數**快顯視窗的**名稱**方塊中，輸入新分析參數的名稱。

   1. (選用) 對於**靜態預設值**，根據您的想法選擇參數的靜態預設值。

   1. (選用) 選擇**設定動態預設值**以設定新參數的動態預設值。

   1. 在**映射的資料集參數**資料表中，您會看到要映射至新分析參數的資料集參數。您可以選擇**新增資料集參數**下拉式清單，然後選擇要映射的參數，將其他資料集參數新增至此分析參數。您可以選擇要移除之資料集參數旁邊的**移除**按鈕，取消映射資料集參數。

   如需建立分析參數的詳細資訊，請參閱 [在 Amazon Quick 中設定參數](parameters-set-up.md)。

當您將資料集參數映射至分析參數時，分析參數表示分析中使用的資料集參數。

您也可以在**編輯參數**視窗中將資料集參數映射和取消映射至分析參數。若要開啟**編輯參數**視窗，請瀏覽至**參數**窗格，選擇要變更之分析參數旁邊的省略符號 (三個點)，然後選擇**編輯參數**。您可以選擇**新增資料集參數**下拉式清單，然後選擇要映射的參數，將其他資料集參數新增至此分析參數。您可以選擇要移除之資料集參數旁邊的**移除**按鈕，取消映射資料集參數。也可以選擇**全部移除**，移除映射的所有資料集參數。完成變更後，選擇**更新**。

刪除分析參數時，所有資料集參數都會從分析中取消映射，並顯示在**參數**窗格的**已取消映射**區段中。一次只能將資料集參數映射至一個分析參數。若要將資料集參數映射至不同的分析參數，請取消映射資料集參數，然後將其映射至新的分析參數。

## 將篩選條件控制項新增至映射的分析參數
<a name="dataset-parameters-analysis-filter-control"></a>

將資料集參數映射至 Quick 中的分析參數之後，您可以建立篩選條件、動作、計算欄位、標題、描述和 URLs篩選條件控制項。

**若要將控制項新增至映射的參數**

1. 在分析頁面的**參數**窗格中，選擇您想要的映射分析參數旁邊的省略符號 (三個點)，然後選擇**新增控制項**。

1. 在出現的**新增控制項**視窗中，根據您的想法輸入**名稱**，然後選擇控制項的**樣式**。對於單值控制項，選擇 `Dropdown`、`List` 或 `Text field`。對於多值控制項，選擇 `Dropdown`。

1. 選擇**新增**以建立控制項。

# 資料集參數的進階使用案例
<a name="dataset-parameters-advanced-options"></a>

本章節介紹使用資料集參數和下拉式清單控制項的更多進階選項和使用案例。請依照以下分步說明使用資料集參數建立動態下拉式清單值。

## 將多值控制項與資料集參數結合使用
<a name="dataset-parameters-dropdown"></a>

當您使用插入到資料集之自訂 SQL 中的資料集參數時，資料集參數通常會依據特定資料欄中的值篩選資料。如果您建立下拉式清單控制項並將參數指派為值，下拉式清單只會顯示參數篩選的值。下列程序說明如何建立映射至資料集參數的控制項，並顯示所有未篩選的值。

**若要在下拉式控制項中填入指派的所有值**

1. 在 SPICE 或直接查詢中建立新的單欄資料集，其中包含原始資料集中的所有唯一值。例如，假設您的原始資料集使用下列自訂 SQL：

   ```
   select * from all_flights
           where origin_state_abr = <<$State>>
   ```

   若要建立具有所有唯一原始州的單欄資料表，請將下列自訂 SQL 套用至新資料集：

   ```
   SELECT distinct origin_state_abr FROM all_flights
           order by origin_state_abr asc
   ```

   SQL 運算式會依字母順序傳回所有唯一州。新資料集沒有任何資料集參數。

1. 輸入新資料集的**名稱**，然後儲存並發布資料集。在我們的範例中，新資料集名為 `State Codes`。

1. 開啟包含原始資料集的分析，然後將新資料集新增至分析。如需將資料集新增至現有分析的相關資訊，請參閱 [將資料集新增至分析](adding-a-data-set-to-an-analysis.md)。

1. 導覽至**控制項**窗格並找到要編輯的下拉式清單控制項。選擇控制項旁邊的省略符號 (三個點)，然後選擇**編輯**。

1. 在左側**格式控制項**的**值**區段中，選擇**連結至資料集欄位**。

1. 在出現的**資料集**下拉式清單中，選擇您建立的新資料集。在我們的範例中，選擇了 `State Codes` 資料集。

1. 對於所出現的**欄位**下拉式清單，選擇適當的欄位。在我們的範例中，選擇了 `origin_state_abr` 資料集。

將控制項連結至新資料集之後，所有唯一值都會顯示在控制項的下拉式清單中。其中包括資料集參數篩選掉的值。

## 將控制項與「全選」選項結合使用
<a name="dataset-parameters-controls-select-all"></a>

依預設，當一個或多個資料集參數映射至分析參數並新增至控制項時，`Select all` 選項不可用。下列程序顯示了使用上一章節中的相同範例場景的解決方法。

**注意**  
此分步說明適用於足夠小的資料集，可以在直接查詢中載入。如果資料集很大且想要使用 `Select All` 選項，建議您將資料集載入 SPICE。但是，如果您想要將 `Select All` 選項與資料集參數結合使用，此分步說明介紹了執行此作業的方法。

首先，假設您有一個帶有自訂 SQL 的直接查詢資料集，其中包含名為 `States` 的多值參數：

```
select * from all_flights
where origin_state_abr in (<<$States>>)
```

**若要在使用資料集參數的控制項中使用「全選」選項**

1. 在分析的**參數**窗格中，找到您要使用的資料集參數，然後從參數旁邊的省略符號 (三個點) 中選擇**編輯**。

1. 在顯示的**編輯參數**視窗中，於**靜態多重預設值**區段中輸入新的預設值。在我們的範例中，預設值是 ` All States`。請注意，此範例會使用前導空格字元，以便預設值顯示為控制項中的第一項。

1. 選擇**更新**以更新參數。

1. 導覽至包含您在逐次分析中使用之資料集參數的資料集。編輯資料集的自訂 SQL，以包含全新靜態多重預設值的預設使用案例。使用 ` All States` 範例，SQL 運算式如下所示：

   ```
   select * from public.all_flights
   where
       ' All States' in (<<$States>>) or
       origin_state_abr in (<<$States>>)
   ```

   如果使用者在控制項中選擇 ` All States`，則新 SQL 運算式會傳回所有唯一記錄。如果使用者從控制項中選擇不同的值，則查詢會傳回資料集參數篩選的值。

### 將控制項與「全選」和多值選項結合使用
<a name="dataset-parameters-controls-multi-select-all"></a>

您可以將先前的 `Select all` 程序與先前討論的多值控制方法結合使用，以建立除使用者可以選取的多個值之外，還包含一個 `Select all` 值的下拉式清單控制項。此分步說明假設您已遵循先前的程序，知道如何將資料集參數映射至分析參數，並且可以在分析中建立控制項。如需映射分析參數的詳細資訊，請參閱 [在新的快速分析中映射資料集參數](dataset-parameters-analysis.md#dataset-parameters-map-to-analysis)。如需在使用資料集參數的分析中建立控制項的詳細資訊，請參閱 [將篩選條件控制項新增至映射的分析參數](dataset-parameters-analysis.md#dataset-parameters-analysis-filter-control)。

**若要使用「全選」選項和映射的資料集參數將多個值新增至控制項**

1. 開啟分析，其中包含採 `Select all` 自訂 SQL 運算式的原始資料集，以及包含原始資料集中經篩選資料欄之所有可能值的第二個資料集。

1. 導覽至先前建立的次要資料集，以傳回經篩選之資料欄的所有值。新增自訂 SQL 運算式，將先前設定的 `Select all` 選項新增至查詢。下列範例會將 ` All States` 記錄新增至資料集傳回值清單的頂端：

   ```
   (Select ' All States' as origin_state_abr)
       Union All
       (SELECT distinct origin_state_abr FROM all_flights
       order by origin_state_abr asc)
   ```

1. 返回資料集所屬的分析，並將您使用的資料集參數映射至在上一個程序之步驟 3 中建立的分析參數。分析參數和資料集參數的名稱可以相同。在我們的範例中，分析參數名為 `States`。

1. 建立新的篩選控制項或編輯現有的篩選控制項，然後選擇**隱藏全選**，隱藏顯示在多值控制項中的已停用**全選**選項。

建立控制項之後，使用者可以使用相同的控制項，以選取資料集中經篩選資料欄的全部或多個值。