Editor delle query delle fonti dati (Query di ricerca)

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 segno = e da un operatore, un numero o una stringa:

database_string=my string
database_number=1234
database_number=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

GE()

Valore maggiore o uguale a

LT()

Valore inferiore a

LE()

Valore minore o uguale a

NOT()

Negazione di un'espressione

AND()

Elenco di espressioni separate da virgola. Tutte devono essere soddisfatte

OR()

Elenco di espressioni separate da virgola. 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=''

Utilizzo della query di ricerca con il selettore
di date

Il widget di selezione della data consente agli utenti di selezionare una data o un intervallo di date che viene passato come parametro URL.

Questi parametri possono essere utilizzati nelle query di ricerca, come mostrato nell’esempio seguente:

  • Supponiamo che i record dei dipendenti abbiano i campi `hire_date` e `exit_date`. Se `exit_date` è `NULL`, il rapporto di lavoro è ancora attivo senza una data di cessazione prevista.

  • La selezione di un intervallo di date nel selettore (ad es. da febbraio 2022 a dicembre 2026) imposta i seguenti parametri URL:

    • interval=BETWEEN(2022-02,2026-12)

    • intervalBucket=month

    • intervalType=month

image-20261012-114613.png
  • Per filtrare la tabella "Employees" in base ai record che si sovrappongono all'intervallo selezionato, utilizzare la seguente query di ricerca:

hire_date=LE(${interval(params.interval).end.format()})
exit_date=OR(NULL(), GE(${interval(params.interval).begin.format()}))

Ogni riga rappresenta una regola indipendente; più regole vengono valutate con una condizione AND implicita.

Spiegazione della query:

  • hire_date è minore o uguale alla fine dell’intervallo (il 12/2026 o prima)

  • E

  • exit_date è NULL oppure maggiore o uguale all’inizio dell’intervallo (a partire da febbraio 2022)