

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

# 在 Quick Sight 中使用關卡感知計算
<a name="level-aware-calculations"></a>


|  | 
| --- |
|    適用對象：企業版和標準版  | 

使用*等級感知計算* (LAC)，您可以指定要計算視窗函數或彙總函數的資料粒度等級。LAC 函數有兩種類型：等級感知計算 – 彙總 (LAC-A) 函數，以及等級感知計算 – 視窗 (LAC-W) 函數。

**Topics**
+ [LAC-A 函數](#level-aware-calculations-aggregate)
+ [LAC-W 函數](#level-aware-calculations-window)

## 等級感知計算 – 彙總 (LAC-A) 函數
<a name="level-aware-calculations-aggregate"></a>

使用 LAC-A 函數，您可以指定在哪個等級進行計算分組。透過將一個引數新增至現有的彙總函數 (例如 `sum() , max() , count()`)，您可以定義任何想要用於彙總的分組等級。新增的等級可以是與新增至視覺效果的維度無關的任何維度。例如：

```
sum(measure,[group_field_A])
```

若要使用 LAC-A 函數，請直接在計算編輯器中輸入它們，方法是將預期的彙總等級作為置於括弧之間的第二個引數新增。以下是彙總函數和 LAC-A 函數的示例，方便進行比較。
+ 彙總函數：`sum({sales})`
+ LAC-A 函數：`sum({sales}, [{Country},{Product}])`

LAC-A 結果使用括弧 `[ ]` 中的指定級別計算，可以用作彙總函數的運算元。彙總函數的分組等級是視覺效果等級，並將**分組依據**欄位新增至視覺效果的欄位區。

除了在括弧 `[ ]` 中建立靜態 LAC 群組金鑰之外，您還可以透過將參數 `$visualDimensions` 放在括弧中，使其動態適應視覺效果分組依據欄位。這是系統提供的參數，不同於使用者定義的參數。`[$visualDimensions]` 參數表示在當前視覺效果中新增至**分組依據**欄位區的欄位。下列範例顯示如何將群組金鑰動態新增至視覺效果維度，或從視覺效果維度移除群組金鑰
+ 具有動態新增之群組金鑰的 LAC-A：`sum({sales}, [${visualDimensions},{Country},{Products}])`

  它會在計算視覺效果等級的彙總之前，計算依據 `country`、`products` 以及**分組依據**欄位區中的任何其他欄位分組的銷售總和。
+ 具有動態移除之群組金鑰的 LAC-A：`sum({sales}, [${visualDimensions},!{Country},!{Products}])`

  它會在計算視覺效果等級的彙總之前，計算依據視覺效果**分組依據**欄位區中除 `country` 和 `product` 之外的其他欄位分組的銷售總和。

您可以在 LAC 運算式上指定新增的或移除的群組金鑰，但不能同時指定兩者。

下列彙總函數支援 LAC-A 函數：
+ [avg](avg-function.md)
+ [count](count-function.md)
+ [distinct\$1count](distinct_count-function.md)
+ [max](max-function.md)
+ [median](median-function.md)
+ [min](min-function.md)
+ [percentile](percentile-function.md)
+ [percentileCont](percentileCont-function.md)
+ [percentileDisc (百分位數)](percentileDisc-function.md)
+ [stdev](stdev-function.md)
+ [stdevp](stdevp-function.md)
+ [sum](sum-function.md)
+ [var](var-function.md)
+ [varp](varp-function.md)

### LAC-A 的範例
<a name="level-aware-calculations-aggregate-examples"></a>

您可以使用 LAC-A 函數執行下列作業：
+ 執行獨立於視覺效果中的等級的計算。例如，如果進行以下計算，只會在國家/地區等級彙總銷售數字，但不會在視覺效果中的其他維度 (區域或產品) 彙總。

  ```
  sum({Sales},[{Country}])
  ```
+ 對不在視覺效果中的維度執行計算。例如，如果您有以下函數，可以按區域計算國家/地區的平均總銷售額。

  ```
  sum({Sales},[{Country}])
  ```

  雖然國家/地區不包含在視覺效果中，但 LAC-A 函數會先在國家/地區等級彙總銷售額，然後視覺效果等級的計算會產生每個區域的平均數。如果未使用 LAC-A 函數來指定等級，則會在最低粒度等級 (資料集的基礎等級) 計算每個區域的平均銷售額 (顯示在「銷售額」資料欄中)。
+ LAC-A 與其他彙總函數和 LAC-W 函數結合使用。您可以透過兩種方式將 LAC-A 函數巢狀其他函數。
  + 您可以在建立計算時撰寫巢狀語法。例如，LAC-A 函數可以巢狀 LAC-W 函數，依國家/地區按每種產品的平均價格計算總銷售額：

    ```
    sum(avgOver({Sales},[{Product}],PRE_AGG),[{Country}])
    ```
  + 將 LAC-A 函數新增至視覺效果時，計算可以與您在欄位中選取的視覺層級彙總函數進一步巢狀。如需如何變更視覺效果中的欄位彙總的詳細資訊，請參閱 [使用欄位集在欄位中變更或新增彙總](changing-field-aggregation.md#change-field-aggregation-field-wells)。

### LAC-A 限制
<a name="level-aware-calculations-aggregate-limitations"></a>

下列限制會套用於 LAC-A 函數：
+ 所有加法和非加法彙總函數都支援 LAC-A 函數，例如 `sum()`、`count()` 和 `percentile()`。LAC-A 函數不支援以「if」結尾的條件式彙總函數，例如 `sumif()` 和 `countif()`，也不支援以「periodToDate」開頭的週期彙總函數，例如 `periodToDateSum()` 和 `periodToDateMax()`。
+ 資料表和樞紐分析表中的 LAC-A 函數目前不支援資料列等級和資料欄等級的總計。當您將資料列或資料欄等級的總計新增至圖表時，總數將顯示為空白。其他非 LAC 維度不受影響。
+ 目前不支援巢狀 LAC-A 函數。支援與一般彙總函數和 LAC-W 函數巢狀的 LAC-A 函數的有限功能。

  例如，以下函數有效：
  + `Aggregation(LAC-A())`。例如：`max(sum({sales}, [{country}]))`
  + `LAC-A(LAC-W())`。例如：`sum(sumOver({Sales},[{Product}],PRE_AGG), [{Country}])`

  以下函數無效：
  + `LAC-A(Aggregation())`。例如：`sum(max({sales}), [{country}])`
  + `LAC-A(LAC-A())`。例如：`sum(max({sales}, [{country}]),[category])`
  + `LAC-W(LAC-A())`。例如：`sumOver(sum({Sales},[{Product}]),[{Country}],PRE_AGG)`

## 等級感知計算 – 視窗 (LAC-W) 函數
<a name="level-aware-calculations-window"></a>

使用 LAC-W 函數，您可以指定要執行計算的視窗或分割區。LAC-W 函數是您可以在預先篩選或預先彙總等級執行的一組視窗函數，例如 `sumover()`、`(maxover)`、`denseRank`。例如：`sumOver(measure,[partition_field_A],pre_agg)`。

LAC-W 函數之前被稱為等級感知彙總 (LAA)。

LAC-W 函數有助於您回答下列類型的問題：
+ 有多少客戶只簽訂 1 份採購訂單？ 或 10 份？ 或 50 份？ 我們希望視覺效果使用計數做為維度，而不是視覺效果中的指標。
+ 生命週期花費超過 100,000 美元的客戶，在每個市場區隔的總銷售額是多少？ 視覺效果應該只顯示市場區隔及其各自的總銷售額。
+ 每種產業對整個公司獲利的貢獻是多少 (佔總數的百分比)？ 我們希望能夠篩選視覺效果，以顯示一些產業及它們對所顯示產業的總銷售額的貢獻。不過，我們也希望查看各項產業在整個公司總銷售額 (包括篩選掉的產業) 的佔比。
+ 相較於產業平均值，每個類別的總銷售額是多少？ 即使篩選後，產業平均值也應該包含所有類別。
+ 我的客戶如何分組到累積花費範圍？ 我們希望使用分組做為維度，不是指標。

對於更複雜的問題，您可以在 Quick Sight 到達評估設定的特定點之前插入計算或篩選條件。若要直接影響結果，請將計算層級關鍵字新增至資料表計算。如需 Quick Sight 如何評估查詢的詳細資訊，請參閱 [Amazon Quick Sight 中的評估順序](order-of-evaluation-quicksight.md)。

LAC-W 函數支援下列計算等級：
+ **`PRE_FILTER`** – 從分析套用篩選條件之前，Quick Sight 會評估預先篩選條件計算。然後，它會套用這些預先篩選條件計算上設定的任何篩選條件。
+ **`PRE_AGG`** – 在運算顯示層級彙總之前，Quick Sight 會執行預先彙總計算。然後，它會套用這些預先彙總計算上設定的任何篩選條件。這項工作會在套用排名最前與倒數 *N 個* 篩選條件之前發生。

您可以在下列資料表計算函數中使用 `PRE_FILTER` 或 `PRE_AGG` 關鍵字作為參數。指定計算層級時，您會在函數中使用未彙總的量值。例如，您可以使用 `countOver({ORDER ID}, [{Customer ID}], PRE_AGG)`. 使用 `PRE_AGG`，藉以指定在預先彙總層級執行 `countOver`。
+ [avgOver](avgOver-function.md)
+ [countOver](countOver-function.md)
+ [denseRank](denseRank-function.md)
+ [distinctCountOver](distinctCountOver-function.md)
+ [minOver](minOver-function.md)
+ [maxOver](maxOver-function.md)
+ [percentileRank](percentileRank-function.md)
+ [rank](rank-function.md)
+ [stdevOver](stdevOver-function.md)
+ [stdevpOver](stdevpOver-function.md)
+ [sumOver](sumOver-function.md)
+ [varOver](varOver-function.md)
+ [varpOver](varpOver-function.md)

根據預設，每個函數的第一個參數都必須是彙總的量值。如果您使用 `PRE_FILTER` 或 `PRE_AGG`，則第一個參數要使用非彙總的度量。

對於 LAC-W 函數，視覺效果彙總預設為 `MIN` 以消除重複項。若要變更彙總，請開啟欄位的內容功能表 (按一下滑鼠右鍵)，然後選擇不同的彙總。

如需在真實案例使用 LAC-W 函數的時間和方法範例，請參閱大 AWS 數據部落格中的下列文章：[在 Amazon QuickSight 中使用關卡感知彙總建立進階洞見。](https://aws.amazon.com/jp/blogs/big-data/create-advanced-insights-using-level-aware-aggregations-in-amazon-quicksight/)