# Generic

Generic-laddningsprefixet tillåter konvertering av data modellerade på element, attribut och värde (EAV) till en traditionell, normaliserad relationstabellstruktur. EAV-modellering kallas även för ”generisk datamodellering” eller ”öppet schema”.

Exempel på EAV-modellerad data och en motsvarande denormaliserad relationstabell

Exempel på EAV-modellerad data och en motsvarande denormaliserad relationstabell

Exempel på EAV-modellerad data och en motsvarande denormaliserad relationstabell ![Diagram som visar omvandling av en tabell med tre kolumner och fem rader till en tabell med fyra kolumner och två rader.](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-denormalized.png)

Exempel på EAV-modellerade data och en motsvarande upsättning av normaliserade relationstabeller

Exempel på EAV-modellerade data och en motsvarande upsättning av normaliserade relationstabeller

Exempel på EAV-modellerade data och en motsvarande upsättning av normaliserade relationstabeller ![Diagram som visar omvandling av en tabell med tre kolumner och fem rader till tre separata tabeller.](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-normalized.png)

Även om det är tekniskt möjligt att ladda och analysera EAV-modellerad data i Qlik, är det ofta lättare att arbeta med en likvärdig traditionell relationsdatastruktur.

Syntax:

Generic( loadstatement | selectstatement )

* För mer information om att använda LOAD-satser se [Load](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm).
* För mer information om att använda SELECT-satser se [Select](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm).

Dessa ämnen kan hjälpa dig att arbeta med den här funktionen:

Relaterade ämnen

| Avsnitt | Beskrivning |
| --- | --- |
| [Crosstable](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm) | `Crosstable`-laddningsprefixet omvandlar data som är horisontellt orienterade till vertikalt orienterade data. Ur ett rent funktionellt perspektiv utförs här den motsatta omvandlingen till `Generic`-laddningsprefixet, även om prefixen vanligtvis är avsett för helt andra användningsfall. |
| [Generiska databaser](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm) | EAV-strukturerade datamodeller beskrivs ytterligare här. |

## Exempel 1 – Transformering av EAV-strukturerad data med det generiska laddningsprefixet

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

#### Laddningsskript och diagramuttryck

Översikt

Öppna skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.

Laddningsskriptet innehåller en datauppsättning som laddas in i en tabell med namnet `Transactions`. Datauppsättningen inkluderar ett datumfält. Standarddefinitionen för `MonthNames` används.

Laddningsskript

```
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
];
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension: `Color`.

Lägg till måttet:

`=Count([Product ID])`

Nu kan du inspektera antalet produkter efter färg.

Resultattabell

| Färg | =Antal([Produkt-ID]) |
| --- | --- |
| Brun | 4 |
| Vit | 2 |

Notera formen på datamodellen, där varje attribut har brutits ut i en separat tabell med namnet enligt den ursprungliga måltabelltaggen `Product`. Varje tabell har attributet som ett suffix. Ett exempel på detta är `Product.Color`. De resulterande produktattribututdataposterna associeras med `Product ID`.

Datamodellvyns representation av resultaten

Datamodellvyns representation av resultaten

Datamodellvyns representation av resultaten ![Representation av resultaten från detta exempel som de visas i datamodellvyn.](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-results-data-model-viewer.png)

Resulterande tabell med poster: Products.Status

| Produkt-ID | Status |
| --- | --- |
| 13 | Avvecklad |
| 2 | Avvecklad |

Resulterande tabell med poster: Products.Size

| Produkt-ID | Storlek |
| --- | --- |
| 13 | 13-15 |
| 20 | 16-18 |
| 45 | 16-18 |

Resulterande tabell med poster: Products.Color

| Produkt-ID | Färg |
| --- | --- |
| 13 | Brun |
| 5 | Brun |
| 44 | Brun |
| 45 | Brun |
| 20 | Vit |
| 2 | Vit |

## Exempel 2 – Analysera EAV-strukturerad data med det generiska laddningsprefixet

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

#### Laddningsskript och diagramuttryck

Översikt

Det här exemplet visar hur du analyserar EAV-strukturerad data i sin ursprungliga form.

Öppna skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.

Laddningsskriptet innehåller en datauppsättning som laddas in i en tabell med namnet `Products` i en EAV-struktur.

I det här exemplet räknar vi fortfarande produkter efter färgattribut. För att analysera data som är strukturerad på detta sätt måste du använda uttrycksnivåfiltrering av produkter med attributvärdet `Color`.

Dessutom är individuella attribut inte tillgängliga att välja som dimensioner eller fält, vilket gör det svårare att avgöra hur du skapar effektiva visualiseringar.

Laddningsskript

```
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
];
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension: `Value`.

Skapa följande mått:

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

Nu kan du inspektera antalet produkter efter färg.

Resulterande tabell med poster: Products.Status

| Värde | =Antal({&lt;Attribut={'Färg'}&gt;} [Produkt-ID]) |
| --- | --- |
| Brun | 4 |
| Vit | 2 |

## Exempel 3 – Denormalisering av de resulterande utdatatabellerna från en generisk laddning (avancerat)

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

#### Laddningsskript och diagramuttryck

Översikt

I det här exemplet visar vi hur den normaliserade datastrukturen som produceras av `Generic`-laddningsprefixet kan denormaliseras tillbaka till en konsoliderad `Product`-dimensionstabell. Detta är en avancerad modelleringsteknik som kan användas som en del av prestandajustering av datamodeller.

Öppna skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.

Laddningsskript

```
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;
```

Resultat

Öppna datamodellvyn och notera formen på den resulterande datamodellen. Endast en denormaliserad tabell finns. Det är en kombination av de tre mellanliggande utdatatabellerna: `Products.Size`, `Products.Status`och `Products.Color`.

Resulterande intern datamodell

| Produkter |
| --- |
| Produkt-ID |
| Status |
| Färg |
| Storlek |

Resulterande tabell med poster: Products

| Produkt-ID | Status | Färg | Storlek |
| --- | --- | --- | --- |
| 13 | Avvecklad | Brun | 13-15 |
| 20 | - | Vit | 16-18 |
| 2 | Avvecklad | Vit | - |
| 5 | - | Brun | - |
| 44 | - | Brun | - |
| 45 | - | Brun | 16-18 |

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension: `Color`.

Lägg till måttet:

`=Count([Product ID])`

Resultattabell

| Färg | =Antal([Produkt-ID]) |
| --- | --- |
| Brun | 4 |
| Vit | 2 |

## Mer information

* [Load](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Crosstable](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm)
* [Generiska databaser](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm)