Vai al contenuto principale Passa a contenuto complementare

Campi derivati

Se si dispone di un gruppo di campi correlati o contenenti informazioni che è possibile suddividere in parti più piccole pertinenti quando si creano le dimensioni o le misure, è possibile creare definizioni del campo da poter utilizzare per generare campi derivati. Un esempio è il campo data, da cui è possibile derivare più attributi, quali anno, mese, numero della settimana o nome del giorno. Tutti questi attributi possono essere calcolati in un'espressione di dimensione utilizzando le funzioni della data di Qlik Sense, ma in alternativa è possibile creare una definizione di calendario comune per tutti i campi di tipo data. Le definizioni del campo vengono memorizzate nello script di caricamento dei dati.

Nota informaticaIn autoCalendar sono incluse definizioni predefinite dei campi di calendario per Qlik Sense per i campi data caricati utilizzando Gestione dati.Per ulteriori informazioni, vedere I campi della derivati automaticamente utilizzando autocalendar e Aggiunta dati all'app da connessioni e nuovi file.

Dichiarazione delle definizioni del campo del calendario

L'istruzione Declare consente di creare una definizione dei campi derivati. Questo è il punto in cui vengono definiti i diversi attributi del campo, in questo caso gli attributi correlati alla data. Ogni campo viene descritto come <expression> As field_name tagged tag. L'impostazione di uno o più tag è opzionale, tuttavia è in grado di influenzare l'ordinamento del campo derivato. Utilizzare $1 per fare riferimento al campo dati dal quale devono essere generati i campi derivati.

Nota di avviso A condizione che non si desideri creare un autocalendar personalizzato o si utilizza un [autoCalendar] configurato automaticamente tramite Gestione dati, non utilizzare autoCalendar come nome per le definizioni del campo del calendario. Questo nome è riservato per i modelli del calendario generati automaticamente. Vedere I campi della derivati automaticamente utilizzando autocalendar.
Calendar: DECLARE FIELD DEFINITION TAGGED '$date' Parameters first_month_of_year = 1 Fields Year($1) As Year Tagged ('$numeric'), Month($1) as Month Tagged ('$numeric'), Date($1) as Date Tagged ('$date'), Week($1) as Week Tagged ('$numeric'), Weekday($1) as Weekday Tagged ('$numeric'), DayNumberOfYear($1, first_month_of_year) as DayNumberOfYear Tagged ('$numeric');
 

Per ulteriori informazioni, vedere Declare.

Mapping dei campi dati sul calendario utilizzando Derive

Il passaggio successivo consiste nell'utilizzare l'istruzione Derive per mappare i campi dati esistenti sul calendario. Questa procedura consentirà di creare i campi derivati. Per eseguire questa operazione, sono disponibili tre metodi alternativi nello script di caricamento dei dati:

  • Mappando i campi specifici in base al nome del campo.

    DERIVE FIELDS FROM FIELDS OrderDate,ShippingDate USING Calendar;
  • Mappando tutti i campi con uno o più tag del campo specifici.

    DERIVE FIELDS FROM EXPLICIT TAGS ('$date') USING Calendar;
  • Mappando tutti i campi con tag con uno dei tag della definizione del campo ($date nell'esempio riportato sopra).

    DERIVE FIELDS FROM IMPLICIT TAG USING Calendar;

In questo caso, è possibile utilizzare uno qualsiasi dei tre esempi illustrati.

Per ulteriori informazioni, vedere Derive.

I campi della derivati automaticamente utilizzando autocalendar

Se si utilizza Gestione dati per creare un'app e caricare i dati, nello script di caricamento viene inserito automaticamente un calendario denominato [autoCalendar] per fornire definizioni del calendario predefinite. Queste sono visibili nella business logic dell'app.

Per le app create utilizzando script che contengono campi per la data, è possibile inserire questo codice di [autoCalendar], visualizzato sotto, nello script in una sezione una volta caricati tutti i campi della data applicabili. Ciò consente agli utenti dell'app di utilizzare tutti i tipi di analisi basati su periodo disponibili, inclusi quelli che possono creare fogli smart. Notare che è necessario denominare il calendario [autocalendar] per i periodi del calendario da aggiungere correttamente nella business logic.

Modificare i nomi di campo [My_Date_Field1] e [My_Date_Field2] nella riga DERIVE FIELDS FROM FIELDS [My_Date_Field1], [My_Date_Field2] USING [autoCalendar] ; per collegare il campo della data ai calcoli di autocalendar che generano i nuovi campi derivati per la data. Se si dispone di un unico campo della data da collegare a autocalendar, rimuovere [My_Date_Field2]. In modo simile, aggiungere ulteriori campi per la data se si dispone di più di due campi della data per cui si desidera attivare autocalendar.

[autoCalendar]:
  DECLARE FIELD DEFINITION Tagged ('$date')
FIELDS		
  Dual(Year($1), YearStart($1)) AS [Year] Tagged ('$axis', '$year'),
  Dual('Q'&Num(Ceil(Num(Month($1))/3)),Num(Ceil(NUM(Month($1))/3),00)) AS [Quarter] Tagged ('$quarter', '$cyclic'),
  Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [YearQuarter] Tagged ('$yearquarter', '$qualified'),
  Dual('Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [_YearQuarter] Tagged ('$yearquarter', '$hidden', '$simplified'),
  Month($1) AS [Month] Tagged ('$month', '$cyclic'),
  Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth] Tagged ('$axis', '$yearmonth', '$qualified'),
  Dual(Month($1), monthstart($1)) AS [_YearMonth] Tagged ('$axis', '$yearmonth', '$simplified', '$hidden'),
  Dual('W'&Num(Week($1),00), Num(Week($1),00)) AS [Week] Tagged ('$weeknumber', '$cyclic'),
  Date(Floor($1)) AS [Date] Tagged ('$axis', '$date', '$qualified'),
  Date(Floor($1), 'D') AS [_Date] Tagged ('$axis', '$date', '$hidden', '$simplified'),
  If (DayNumberOfYear($1) <= DayNumberOfYear(Today()), 1, 0) AS [InYTD] ,
  Year(Today())-Year($1) AS [YearsAgo] ,
  If (DayNumberOfQuarter($1) <= DayNumberOfQuarter(Today()),1,0) AS [InQTD] ,
  4*Year(Today())+Ceil(Month(Today())/3)-4*Year($1)-Ceil(Month($1)/3) AS [QuartersAgo] ,
  Ceil(Month(Today())/3)-Ceil(Month($1)/3) AS [QuarterRelNo] ,
  If(Day($1)<=Day(Today()),1,0) AS [InMTD] ,
  12*Year(Today())+Month(Today())-12*Year($1)-Month($1) AS [MonthsAgo] ,
  Month(Today())-Month($1) AS [MonthRelNo] ,
  If(WeekDay($1)<=WeekDay(Today()),1,0) AS [InWTD] ,
  (WeekStart(Today())-WeekStart($1))/7 AS [WeeksAgo] ,	
  Week(Today())-Week($1) AS [WeekRelNo] ;

DERIVE FIELDS FROM FIELDS [My_Date_Field1], [My_Date_Field2] USING [autoCalendar] ;

Se l'operazione è eseguita correttamente, nella business logic dell'app verrà creato automaticamente un numero con i periodi del calendario, e in Advisor informazioni strategiche sarà possibile utilizzare i tipi di analisi basati su periodo.

Per ulteriori informazioni, vedere Utilizzo di fogli smart in Advisor informazioni strategiche per le analisi basate sul periodo.

Utilizzo dei campi data derivati in una visualizzazione

Qlik Sense è progettato per riconoscere i campi data derivati, se l'utente ha creato una definizione del calendario e ha mappato i campi come nell'esempio riportato. Essi sono disponibili nella sezione dei campi Data e ora del pannello risorse Campi. Tutti i campi derivati sono inoltre disponibili nell'editor delle espressioni quando si creano o si modificano le dimensioni.

Per ulteriori informazioni, vedere Campi data e ora.

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!