Editor di query della sorgente dati

Crea query per le fonti dati dei widget tabella e grafico per selezionare dati specifici da un database. Le query sono strutturate come segue: un campo del database seguito dal simbolo "=" 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 con codice JavaScript specifico:

Operatori

Operatore

Descrizione

BETWEEN()

Intervallo compreso tra il valore iniziale e quello finale. I valori iniziale e finale sono separati da una virgola

IN()

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

GT()

Valore maggiore di

LT()

Valore inferiore a

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

Seleziona 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))

Seleziona tutti i record con un customerId non NULL:

customerId=NOT(NULL())

Le virgole negli argomenti devono essere precedute dal carattere di escape:

. -> %2C

Ciò è necessario se si utilizzano operatori annidati, come nell'esempio sopra riportato.

Esempi con Moment.js

Negli esempi seguenti, params.interval viene impostato da un widget di selezione della data

Seleziona solo i record con una data compresa tra i parametri di data e ora di inizio e fine forniti da un widget di selezione della data. Si utilizzano begin, end e format() della libreria momentjs:

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

Seleziona i record di un anno prima:

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

Eseguire una query sullo stesso mese di un anno prima, con il mese formattato senza zeri iniziali:

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

Eseguire una query sul 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 es. una query con matrice di filtri), sia la colonna che la stringa di 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 verrà 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 verrà configurata per la colonna "none", probabilmente inesistente:

 none=''