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 |
---|---|
| Intervallo dal valore iniziale a quello finale. I valori iniziali e finali sono separati da virgole |
| Elenco separato da virgola di numeri o stringhe con cui effettuare il confronto |
| Maggiore del valore |
| Inferiore al valore |
| 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
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=''