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:
Calcolo di data e ora con momentjs
Operatori
Operatore | Descrizione |
|---|---|
| Intervallo compreso tra il valore iniziale e quello finale. I valori iniziale e finale sono separati da una virgola |
| Elenco di numeri o stringhe separati da virgole con cui effettuare il confronto |
| Valore maggiore di |
| Valore inferiore a |
| Negazione di un'espressione |
| Elenco di espressioni separate da virgole. Tutte devono essere soddisfatte |
| Elenco di espressioni separate da virgole. Almeno una deve essere soddisfatta |
| 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=''