# Generic

Il prefisso di caricamento Generic consente la conversione dei dati modellati su entità-attributo-valore (EAV) in una struttura di tabella relazionale tradizionale e normalizzata. La modellazione EAV in alternativa è denominata "modellazione di dati generici" o "schema aperto".

Esempio di dati EAV modellati e tabella relazionale denormalizzata equivalente

Esempio di dati EAV modellati e tabella relazionale denormalizzata equivalente

Esempio di dati EAV modellati e tabella relazionale denormalizzata equivalente ![Diagramma che mostra la trasformazione di una tabella con tre colonne e cinque righe in una tabella con quattro colonne e due righe.](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-denormalized.png)

Esempio di dati EAV modellati e tabella relazionale denormalizzata equivalente

Esempio di dati EAV modellati e tabella relazionale denormalizzata equivalente

Esempio di dati EAV modellati e tabella relazionale denormalizzata equivalente ![Diagramma che mostra la trasformazione di una tabella con tre colonne e cinque righe in tre tabelle separate.](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-normalized.png)

Sebbene sia tecnicamente possibile caricare e analizzare i dati modellati EAV in Qlik, è spesso più semplice lavorare con una struttura di dati relazionale tradizionale equivalente.

Sintassi:

Generic( loadstatement | selectstatement )

* Per ulteriori informazioni sull'utilizzo delle istruzioni LOAD, vedere [Load](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm).
* Per ulteriori informazioni sull'utilizzo delle istruzioni SELECT, vedere [Select](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm).

I seguenti argomenti possono aiutarti a lavorare con questa funzione:

Argomenti correlati

| Argomento | Descrizione |
| --- | --- |
| [Crosstable](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm) | Il prefisso di caricamento `Crosstable` trasforma i dati orientati orizzontalmente in dati orientati verticalmente. Da una prospettiva puramente funzionale, esegue la trasformazione opposta al prefisso di caricamento `Generic`, sebbene i prefissi servano in genere per casi d'uso completamente diversi. |
| [Database generici](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm) | I modelli di dati strutturati EAV sono ulteriormente descritti qui. |

## Esempio 1 – Trasformazione di dati strutturati EAV con il prefisso di caricamento generico

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

#### Script di caricamento ed espressione del grafico

Panoramica

Aprire l'Editor di caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.

Lo script di caricamento contiene un set di dati che viene caricato in una tabella denominata `Transactions`. Il set di dati include un campo data. Viene utilizzata la definizione predefinita `MonthNames`.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: `Color`.

Aggiungere questa misura:

`=Count([Product ID])`

Ora è possibile controllare il numero di prodotti per colore.

Tabella dei risultati

| Colore | =Conteggio([ID Prodotto]) |
| --- | --- |
| Marrone | 4 |
| Bianco | 2 |

Si noti la forma del modello dati, in cui ogni attributo è stato suddiviso in una tabella separata denominata in base al contrassegno della tabella di destinazione originale `Product`. Ogni tabella ha l'attributo come suffisso. Un esempio è `Product.Color`. I record di output dell'Attributo prodotto risultanti sono associati per `Product ID`.

Rappresentazione dei risultati del sistema di visualizzazione modello dati

Rappresentazione dei risultati del sistema di visualizzazione modello dati

Rappresentazione dei risultati del sistema di visualizzazione modello dati ![La rappresentazione dei risultati nel seguente esempio è come appaiono nel sistema di visualizzazione modello dati](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-results-data-model-viewer.png)

Tabella dei record risultante: Products.Status

| ID prodotto | Stato |
| --- | --- |
| 13 | Interrotto |
| 2 | Interrotto |

Tabella dei record risultante: Products.Size

| ID prodotto | Dimensioni |
| --- | --- |
| 13 | 13-15 |
| 20 | 16-18 |
| 45 | 16-18 |

Tabella dei record risultante: Products.Color

| ID prodotto | Colore |
| --- | --- |
| 13 | Marrone |
| 5 | Marrone |
| 44 | Marrone |
| 45 | Marrone |
| 20 | Bianco |
| 2 | Bianco |

## Esempio 2 – Analisi dei dati strutturati EAV senza il prefisso di caricamento generico

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

#### Script di caricamento ed espressione del grafico

Panoramica

Questo esempio mostra come analizzare i dati strutturati EAV nella loro forma originale.

Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.

Lo script di caricamento contiene un set di dati che viene caricato in una tabella denominata `Products` in una struttura EAV.

In questo esempio, i prodotti continuano ad essere contati per attributo colore. Per analizzare i dati strutturati in questo modo, è necessario applicare un filtro a livello di espressione per i prodotti con il valore Attributo `Color`.

Inoltre, i singoli attributi non sono disponibili per la selezione come dimensioni o campi, rendendo più difficile determinare come creare visualizzazioni efficaci.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: `Value`.

Creare la seguente misura:

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

Ora è possibile controllare il numero di prodotti per colore.

Tabella dei record risultante: Products.Status

| Valore | =Conteggio({&lt;Attributo={'Colore'}&gt;} [ID prodotto]) |
| --- | --- |
| Marrone | 4 |
| Bianco | 2 |

## Esempio 3 – Denormalizzazione delle tabelle di output risultanti da un caricamento generico (avanzato)

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

#### Script di caricamento ed espressione del grafico

Panoramica

In questo esempio, viene mostrato come la struttura dati normalizzata prodotta dal prefisso di caricamento `Generic` può essere denormalizzata nuovamente in una tabella dimensionale `Product` consolidata. Questa è una tecnica di modellazione avanzata che può essere impiegata come parte dell'ottimizzazione delle prestazioni del modello dati.

Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.

Script di caricamento

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

Risultati

Aprire il sistema di visualizzazione modello dati e annotare la forma del modello di dati risultante. È presente una sola tabella denormalizzata. Questa è una combinazione delle tre tabelle di output intermedie: `Products.Size`, `Products.Status` e `Products.Color`.

Modello di dati interni risultante

| Prodotti |
| --- |
| ID prodotto |
| Stato |
| Colore |
| Dimensioni |

Tabella dei record risultante: Products

| ID prodotto | Stato | Colore | Dimensioni |
| --- | --- | --- | --- |
| 13 | Interrotto | Marrone | 13-15 |
| 20 | - | Bianco | 16-18 |
| 2 | Interrotto | Bianco | - |
| 5 | - | Marrone | - |
| 44 | - | Marrone | - |
| 45 | - | Marrone | 16-18 |

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: `Color`.

Aggiungere questa misura:

`=Count([Product ID])`

Tabella dei risultati

| Colore | =Conteggio([ID Prodotto]) |
| --- | --- |
| Marrone | 4 |
| Bianco | 2 |

## Ulteriori informazioni

* [Load](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Crosstable](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm)
* [Database generici](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm)