Editor di query della sorgente dati

Creare query di origine dati per i widget Tabella e Grafico per selezionare dati specifici da un database. Le query sono costruite sotto forma di un campo del database seguito dal segno = e da un operatore, un numero o una stringa:

database_string=my string
database_number=1234
database_numger=BETWEEN(3, 6)

Le query possono essere arricchite da codice JavaScript specifico:

  • Calcolo dell'ora e della data con momentjs

Operatori

Operatore

Descrizione

BETWEEN()

Intervallo dal valore iniziale a quello finale. I valori iniziali e finali sono separati da virgole

IN()

Elenco separato da virgole di numeri o stringhe con cui effettuare il confronto

GT()

Maggiore del valore

LT()

Inferiore al valore

NOT()

Negazione di un'espressione

AND()

Elenco di espressioni separate da virgole. Tutte devono essere soddisfatte

OR()

Elenco di espressioni separate da virgole. Almeno una deve essere soddisfatta

NULL()

Verifica se un valore è NULL

Esempi

Selezionare tutti i record con uno stipendio superiore a 40000:

salary=GT(40000)

Seleziona tutti i record con nomi diversi da James, John e Joe:

name=NOT(IN(James%2CJohn%2CJoe))

Selezionare tutti i record con un CustomerId non NULL:

customerId=NOT(NULL())

Le virgole negli argomenti devono essere evitate:

. -> %2C

Questo è necessario se si utilizzano operatori annidati come nell'esempio precedente.

Esempi con momentjs

Negli esempi seguenti, params.interval viene impostato da un widget Selettore Data

Seleziona solo i record con una data compresa tra i parametri inizio e fine forniti da un widget di selezione della data. Inizio, fine e format() sono utilizzati dalla libreria momentjs:

date=BETWEEN(${interval(params.interval).begin.format()}, ${interval(params.interval).end.format()})

Selezionare i record di un anno prima:

year=${interval(params.interval).begin.subtract(1, 'years').format('YYYY')}

Interrogare lo stesso mese di un anno prima con il mese formattato senza zeri iniziali:

month=${interval(params.interval).begin.subtract(params.sub, 'years').format('M')}

Interrogare il giorno della settimana (0-6):

weekday=${interval(params.interval).begin.day()}

Query dipendente dai parametri

Se una query deve essere applicata solo se è impostato un parametro specifico (ad esempio, una query a matrice Filtro), la colonna e la stringa della query possono essere racchiuse in istruzioni if:

${filterMatrix.device_name ? 'device_name' : 'none'}=${filterMatrix.device_name ? filterMatrix.device_name : ''}

Se il parametro filterMatrix.device_name è definito, la colonna sarà impostata su 'device_name' e la stringa di query su 'filterMatrix.device_name'):

device_name=filterMatrix.device_name

Se lo stesso parametro non è definito, la query risultante sarà configurata per la colonna probabilmente inesistente 'none':

 none=''