# Generic

Generic 載入前置詞允許將實體–屬性–值模型化資料 (EAV) 轉換為傳統的標準化關係表格結構。EAV 模型化也稱為「一般資料模型化」或「開啟結構描述」。

EAV 模型化資料和對等去正規化關係表格的範例

EAV 模型化資料和對等去正規化關係表格的範例

EAV 模型化資料和對等去正規化關係表格的範例 ![圖表顯示具有三欄和五列的表格轉換為具有四欄和兩列的表格。](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-denormalized.png)

EAV 模型化資料和正規化關係表格之對等集合的範例

EAV 模型化資料和正規化關係表格之對等集合的範例

EAV 模型化資料和正規化關係表格之對等集合的範例 ![圖表顯示具有三欄和五列的表格轉換為三個獨立的表格。](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-normalized.png)

雖然技術上可以在 Qlik 中載入並分析 EAV 模型化資料，但使用對等的傳統關係資料結構通常更簡單。

語法：

Generic( loadstatement | selectstatement )

* 如需更多關於使用 LOAD 陳述式的資訊，請參閱 [Load](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)。
* 如需更多關於使用 SELECT 陳述式的資訊，請參閱 [Select](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)。

這些主題可協助您使用此函數：

相關主題

| 主題 | 描述 |
| --- | --- |
| [Crosstable](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm) | `Crosstable` 載入前置詞將水平方向的資料轉換為垂直方向的資料。從純粹的功能性觀點來看，這對 `Generic` 載入前置詞執行相對轉換，雖然前置詞通常用於完全不同的使用案例。 |
| [泛型資料庫](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm)管理資料 中的 | 在此進一步說明 EAV 結構化資料模型。 |

## 範例 1 – 轉換含泛型載入前置詞的 EAV 結構化資料

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Generic.htm)

#### 載入指令碼和圖表運算式

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含載入到名為 `Transactions` 之表格的資料集。資料集包括日期欄位。使用預設 `MonthNames` 定義。

載入指令碼

```
Products:
Generic
Load * inline [
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];
```

結果

載入資料並開啟工作表。建立新的表格並將此欄位新增為維度： `Color`。

新增此量值：

`=Count([Product ID])`

現在您可以按色彩檢查產品數量。

結果表格

| 色彩 | =Count([Product ID]) |
| --- | --- |
| 棕色 | 4 |
| 白色 | 2 |

注意資料模型的形狀，其中每個屬性已分為根據原始目標表格標記 `Product` 命名的獨立表格。每個表格具有屬性作為後置詞。其中一個範例是 `Product.Color`。產生的產品屬性輸出記錄透過 `Product ID` 關聯。

資料模型檢視器結果呈現

資料模型檢視器結果呈現

資料模型檢視器結果呈現 ![在此範例的結果出現在資料模型檢視器時呈現。](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-results-data-model-viewer.png)

產生的記錄表格：Products.Status

| 產品 ID | 狀態 |
| --- | --- |
| 13 | 已中斷 |
| 2 | 已中斷 |

產生的記錄表格：Products.Size

| 產品 ID | 大小 |
| --- | --- |
| 13 | 13-15 |
| 20 | 16-18 |
| 45 | 16-18 |

產生的記錄表格：Products.Color

| 產品 ID | 色彩 |
| --- | --- |
| 13 | 棕色 |
| 5 | 棕色 |
| 44 | 棕色 |
| 45 | 棕色 |
| 20 | 白色 |
| 2 | 白色 |

## 範例 2 – 分析不含泛型載入前置詞的 EAV 結構化資料

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Generic.htm)

#### 載入指令碼和圖表運算式

概述

此範例顯示如何以原始形式分析 EAV 結構化資料。

開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含載入到 EAV 結構中名為 `Products` 之表格的資料集。

在此範例中，我們仍在按色彩屬性計算產品數。若要分析以此方式結構化的資料，您將需要套用具有屬性值 `Color` 之產品的運算式層級篩選。

此外，個別屬性無法用來選取作為維度或欄位，因此更難判定如何建置有效的視覺化。

載入指令碼

```
Products:
Load * Inline
[
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];
```

結果

載入資料並開啟工作表。建立新的表格並將此欄位新增為維度： `Value`。

建立下列量值：

`=Count({<Attribute={'Color'}>} [Product ID])`

現在您可以按色彩檢查產品數量。

產生的記錄表格：Products.Status

| 值 | =Count({&lt;Attribute={'Color'}&gt;} [Product ID]) |
| --- | --- |
| 棕色 | 4 |
| 白色 | 2 |

## 範例 3 – 對從泛型載入 (進階) 產生的輸出表格去正規化

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Generic.htm)

#### 載入指令碼和圖表運算式

概述

在此範例中，我們顯示透過 `Generic` 載入前置詞產生的正規化資料結構可以如何去正規化回到合併的 `Product` 維度表格。這是進階模型化技術，可作為資料模型效能微調的一部分採用。

開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。

載入指令碼

```
Products:

Generic
Load * inline [
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];

RENAME TABLE Products.Color TO Products;

OUTER JOIN (Products)
LOAD * RESIDENT Products.Size;
						
OUTER JOIN (Products)
LOAD * RESIDENT Products.Status;
DROP TABLES Products.Size,Products.Status;
```

結果

開啟資料模型檢視器並注意產生的資料模型形狀。僅存在一個去正規化的表格。這是三個中繼輸出表格的組合：`Products.Size`、`Products.Status` 和 `Products.Color`。

產生內部資料模型

| 產品 |
| --- |
| 產品 ID |
| 狀態 |
| 色彩 |
| 大小 |

產生的記錄表格：Products

| 產品 ID | 狀態 | 色彩 | 大小 |
| --- | --- | --- | --- |
| 13 | 已中斷 | 棕色 | 13-15 |
| 20 | - | 白色 | 16-18 |
| 2 | 已中斷 | 白色 | - |
| 5 | - | 棕色 | - |
| 44 | - | 棕色 | - |
| 45 | - | 棕色 | 16-18 |

載入資料並開啟工作表。建立新的表格並將此欄位新增為維度： `Color`。

新增此量值：

`=Count([Product ID])`

結果表格

| 色彩 | =Count([Product ID]) |
| --- | --- |
| 棕色 | 4 |
| 白色 | 2 |

## 瞭解更多資訊

* [Load](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Crosstable](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm)
* [泛型資料庫](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm)