集合分析與集合運算式
集合分析提供定義資料值集合 (或群組) 的方法,與由目前選項定義的一般集合不同。
通常進行選取時,Sum、Max、Min、Avg 和 Count 等彙總函數會彙總您已選取的選項:目前選項。您的選項會自動定義要加以彙總的資料集。使用集合分析,您可定義獨立於目前選項的群組。若想要顯示特定值,這項功能會非常實用,例如,某項產品跨所有地區的市占率,不考慮目前選項。
進行不同比較時 (例如與滯銷產品相較下哪些是暢銷產品,或是今年與去年相比),集合分析的功能也很強大。
試想以下範例:您在篩選窗格中選取了 2010 年,開始使用一個應用程式。彙總接著就會以該選項為依據,而視覺化只會顯示那一年的值。選取新選項時,視覺化會隨之更新。系統會將目前選項所定義之一組可能記錄加以彙總。使用集合分析,您可定義一個您感興趣的集合,且不會取決於選項。
建立集合運算式
探討集合分析範例的不同部分之前,必須先定出集合運算式和集合分析之間的一項差異:
定義欄位值集合亦即定義集合運算式;而使用集合運算式分析資料即為集合分析。因此,本節其餘內容將集中說明集合運算式和其元件。
以下是集合分析範例:sum( {$<Year={2009}>} Sales ),其中 {$<Year={2009}>} 是集合運算式。
集合運算式有兩個一般語法規則:
- 集合運算式必須用於彙總函數。在本範例中,彙總函數是 sum(Sales)。
- 集合運算式必須以括弧 {} 括住。在本範例中,集合運算式是:{$<Year={2009}>}。
集合運算式包含以下部分的組合:
- 識別碼。一或多個識別碼可定義集合運算式與所評估運算式其餘內容之間的關係。簡單的集合運算式中包含單一識別碼,例如貨幣符號 {$},表示目前選項中的所有記錄。
- 運算子。例如,如果有一個以上的識別碼,系統會指定以識別碼代表的資料集結合以建立子集合或超集合的方式,藉此使用一個運算子或一個運算子來縮小資料集。
- 修飾詞。修飾詞或修飾詞可新增到集合運算式以變更選項。修飾詞可單獨使用,或用來修改識別碼以篩選資料集。
Examples:
Example 1:
此集合運算式包含一個識別碼 $ 和一個修飾詞 <Year={2009>}。此範例不包含運算子。集合運算式解譯為:「目前選項中的所有記錄都屬於 2009 年」。
Example 2:
此集合運算式包含一個識別碼 $ 和 1,運算子 + 和修飾詞 <Year={2009}> 和 <Country={'Sweden'}>。
此集合運算式設計用於加總與當前選擇相關的 2009 年銷售額,並新增與國家 Sweden 所有年份相關的全套資料。
以下小節將更詳細說明識別碼、運算子和修飾詞。
識別碼
識別碼會定義集合運算式與所評估欄位值或運算式之間的關係。
在範例 sum( {$<Year={2009}>} Sales ) 中,識別碼是貨幣符號 $,代表要評估的記錄集合包含目前選項的所有記錄。接著會用集合運算式中的修飾詞部分進一步篩選此集合。在更複雜的集合運算式中,可使用運算子結合兩個識別碼。
此表格顯示一些常見識別碼。
識別碼 | 描述 |
---|---|
1 | 代表應用程式中所有記錄的完整集合,不考慮任何已選取的選項。 |
$ | 代表目前選項的記錄。因此,集合運算式 {$} 等同於未指明集合運算式。 |
$1 | 代表前一個選項。$2 代表前面一個選項,以此類推。 |
$_1 | 代表下一個 (前進) 選項。$_2 代表下面一個選項,以此類推。 |
BM01 | 您可使用任何書籤識別碼或書籤名稱。 |
MyAltState | 您可以按其狀態名稱引用在輪替狀態機進行的選擇。 |
此表格顯示一些使用不同識別碼的範例。
範例 | 結果 |
---|---|
sum ({1} Sales) | 傳回應用程式的總銷售額,會忽略選項,但不會忽略維度。 |
sum ({$} Sales) |
會傳回目前選項的銷售額,亦即與 sum(Sales) 相同。 |
sum ({$1} Sales) |
會傳回前一個選項的銷售。 |
sum ({BM01} Sales) |
會傳回書籤 BM01 的銷售。 |
運算子
運算子可用來包含、排除或交集部分或全部資料集。所有運算子都將集合作為運算元使用,並傳回一個集合作為結果。
此表格顯示可在集合運算式中使用的運算子。
運算子 | 描述 |
---|---|
+ | 聯集。此二元運算會傳回一個集合,其中包含的記錄屬於兩個集合運算元中的任一個集合。 |
- | 差集。此二元運算會傳回一組記錄,這些記錄屬於兩個集合算元中的第一個集合,但不屬於第二個集合。此外,當作為一元運算子時,會傳回補集。 |
* | 交集。此二元運算會傳回一個集合,其中包含的記錄同時屬於兩個集合運算元。 |
/ | 對稱差 (XOR)。此二元運算會傳回一個集合,其中包含的記錄屬於兩個集合運算元中的任一個集合,但不同時屬於這兩個集合。 |
此表格顯示使用運算子的範例。
範例 | 結果 |
---|---|
sum( {1-$} Sales ) | 傳回透過選取排除的所有項目的銷售額。 |
sum( {$*BM01} Sales ) | 傳回選取與書籤 BM01 之間交集的銷售額。 |
sum( {-($+BM01)} Sales ) |
傳回選取與書籤 BM01 排除的銷售額。 |
Sum({$<Year={2009}>+1<Country={'Sweden'}>} Sales) | 傳回與目前選取相關的 2009 年銷售額,並新增與國家 Sweden 相關的所有年份的完整資料集。 |
修飾詞
修飾詞可用來新增或變更選項。這類修改可編寫於集合運算式中。修飾詞包含一個或多個欄位名稱,每一項後面都接著一個或多個可在欄位中選取的選項。修飾詞的開頭與結尾是角括弧 <> 。
集合修飾詞可修改前面的集合識別碼選擇。如果沒有引用集合識別碼,則目前選項狀態是隱含的。
此表格顯示使用修飾詞的範例。
範例 | 結果 |
---|---|
sum({$<OrderDate = DeliveryDate>} Sales) | 會傳回目前選項的銷售,其中 OrderDate = DeliveryDate。 |
sum({1<Region = {US}>} Sales) |
會傳回 US 區域的銷售額,忽略目前選項。 |
sum({$<Region = >} Sales) |
會傳回目前選項的銷售額,但移除 Region 選項。 |
sum({<Region = >} Sales) |
會傳回與上例相同的結果。當省略要修改的集合時,會採用 $。 |
sum({$<Year={2000}, Region={“U*”}>} Sales) | 會傳回目前選項的銷售額,但為Year 和 Region 兩者中的新選項。 |
請參閱 集合修飾詞 瞭解更多有關修飾詞的說明及如何在更複雜的集合分析中使用。