Il linguaggio di query dell'API Google Previews ti consente di eseguire varie manipolazioni dei dati con la query all'origine dati.
Sommario
Introduzione
In genere le visualizzazioni prevedono i dati in una forma specifica. Ad esempio, un grafico a torta potrebbe mostrare dati suddivisi in due colonne: un'etichetta di testo e un valore numerico. I dati all'interno dell'origine dati potrebbero non corrispondere esattamente a questa struttura. Ad esempio, l'origine dati potrebbe avere più di due colonne oppure l'ordine delle colonne potrebbe non corrispondere all'ordine previsto dal grafico a torta.
Il linguaggio di query offre la possibilità di inviare richieste di manipolazione e formattazione dei dati all'origine dati e di assicurarsi che i contenuti e la struttura dei dati restituiti corrispondano alla struttura prevista.
La sintassi del linguaggio della query è simile a quella di SQL. Gli sviluppatori che hanno familiarità con SQL dovrebbero essere in grado di imparare e utilizzare rapidamente questo linguaggio di query. Sono disponibili molti tutorial SQL sul Web. Esistono alcune differenze tra questo linguaggio di query e SQL, descritte nella sezione Sintassi.
Tieni presente che le origini dati non sono necessarie per implementare il linguaggio di query o, se sì, per implementare tutte le funzionalità del linguaggio. A meno che tu non abbia motivo di credere altrimenti, non dovresti dipendere da un'origine dati per implementare tutte le funzionalità di questo linguaggio.
Utilizzo del linguaggio di query
Puoi collegare una stringa di query a una richiesta di origine dati in due modi: impostando la stringa di query all'interno del codice JavaScript o impostandola come parametro nell'URL dell'origine dati. Se la richiesta non include una stringa di query, il comportamento predefinito di un'origine dati prevede la restituzione di tutte le righe e le colonne utilizzando l'ordine e la formattazione predefiniti di riga/colonna. Puoi modificare l'impostazione includendo una stringa di query nella richiesta a un'origine dati.
Impostazione della query da JavaScript
Per impostare la stringa di query dal codice JavaScript, chiama il metodo setQuery
della classe google.visualization.Query
.
var query = new google.visualization.Query(DATA_SOURCE_URL); query.setQuery('select dept, sum(salary) group by dept'); query.send(handleQueryResponse);
Impostare la query nell'URL dell'origine dati
La stringa di query può essere aggiunta all'URL dell'origine dati utilizzando il parametro tq
.
L'impostazione della query nel parametro URL anziché in JavaScript ti consente di utilizzare facilmente le visualizzazioni scritte da altri sviluppatori e di personalizzare la query.
La stringa di query deve essere codificata correttamente come parametro URL.
Puoi codificare un URL utilizzando la funzione JavaScript encodeURIComponent
oppure manualmente, utilizzando lo strumento di codifica alla fine di questa sezione.
Esempio:
Prendi in considerazione la seguente stringa di query per un foglio di lavoro Google. Tieni presente che gli ID colonna nei fogli di lavoro sono sempre lettere; il testo dell'intestazione di colonna mostrato nel foglio di lavoro pubblicato è costituito da etichette, non da ID. Devi utilizzare l'ID, non l'etichetta, nella stringa di query.
select A, sum(B) group by A
Quando viene codificata, questa query diventa:
select%20A%2C%20sum(B)%20group%20by%20A
Supponiamo che questo sia l'URL del foglio di lavoro:
https://docs.google.com/a/google.com/spreadsheets/d/1r8_mfnZAvTFmT02JHi1XgOwn_-sLCR9XgmR8wEQ4uW4
Aggiungi /gviz/tq?tq=
YOUR_QUERY_STRING all'URL del foglio di lavoro per ottenere la stringa di query finale:
https://docs.google.com/a/google.com/spreadsheets/d/1r8_mfnZAvTFmT02JHi1XgOwn_-sLCR9XgmR8wEQ4uW4/gviz/tq?tq=select%A%2C%20sum(B)%20group%20by%20A
Utilizza il seguente strumento per codificare o decodificare una stringa di query:
Nota: per accedere ai dati privati dei fogli di lavoro, è necessario trasmettere le credenziali di autorizzazione esplicite utilizzando OAuth. Per ulteriori dettagli, consulta la sezione dedicata a Fogli di lavoro Google: autorizzazione.
Sintassi della lingua
Panoramica
La sintassi del linguaggio di query dell'API Google Preview è progettata in modo simile alla sintassi SQL. Tuttavia, è un sottoinsieme di SQL, con alcune funzionalità che dovrai imparare. Se conosci SQL, non dovrebbe essere troppo difficile imparare.
Tabelle di dati
Questo documento utilizza il termine tabella di dati per fare riferimento al set di risultati di una query. Una tabella di dati è composta da righe e colonne. Ogni colonna in una tabella di dati ha le seguenti proprietà:
- Identificatore (o ID colonna). Utilizzato per fare riferimento alle colonne all'interno della query. Tieni presente che non dovresti mai cercare di fare riferimento a una colonna per etichetta in una query, ma solo per identificatore. Suggerimento: prova a non utilizzare ID che includono spazi: questi sono difficili da gestire e possono commettere errori, ma difficili da trovare nella programmazione. Inoltre, un ID che include spazi deve essere racchiuso tra virgolette.
- Etichetta.
string
che viene generalmente mostrata agli utenti finali. ad esempio come una legenda in un grafico a torta o un'intestazione di colonna in una tabella. - Tipo di dati. I tipi di dati supportati sono
string
,number
,boolean
,date
,datetime
etimeofday
. Tutti i valori di una colonna avranno un tipo di dati corrispondente al tipo di colonna o un valorenull
. Questi tipi sono simili, ma non identici, ai tipi JavaScript. Sono descritti nella sezione Litrial di questa pagina. - Pattern di formattazione. L'origine dati può definire pattern di formattazione per alcune o tutte le colonne. Puoi sostituire questo pattern includendo una clausola di formato.
Tabella utilizzata in tutti gli esempi:
In questa sezione, tutti gli esempi di query si riferiscono alla seguente tabella. Le intestazioni di colonna sono identificatori di colonna.
nomestring |
direttostring |
pranzotimeofday |
stipendio number |
Dataassunzionedate |
etànumber |
isSeniorboolean |
anzianitàOra di iniziodatetime |
---|---|---|---|---|---|---|---|
Mario | Nasale velare | 12:00:00 | 1000 | 2005-03-19 | 35 | true | 2007-12-02 15:56:00 |
Davide | Nasale velare | 12:00:00 | 500 | 2006-04-19 | 27 | false | null |
Silvia | Nasale velare | 13:00:00 | 600 | 2005-10-10 | 30 | false | null |
Ben | Vendite | 12:00:00 | 400 | 2002-10-10 | 32 | true | 09-03-2005 12:30:00 |
Dana | Vendite | 12:00:00 | 350 | 2004-09-08 | 25 | false | null |
Michele | Marketing | 13:00:00 | 800 | 2005-01-10 | 24 | true | 30-12-2007 14:40:00 |
Clausole della lingua
La sintassi del linguaggio di query è composta dalle seguenti clausole. Ogni clausola inizia con una o due parole chiave. Tutte le clausole sono facoltative. Le clausole sono separate da spazi. L'ordine delle clausole deve essere il seguente:
Clausola | Utilizzo |
---|---|
select |
Consente di selezionare le colonne da restituire e in quale ordine. Se omesse, tutte le colonne della tabella vengono restituite nell'ordine predefinito. |
where |
Restituisce solo le righe che corrispondono a una condizione. Se omesse, vengono restituite tutte le righe. |
group by |
Aggrega i valori tra le righe. |
pivot |
Trasforma valori distinti nelle colonne in nuove colonne. |
order by |
Ordina le righe in base ai valori nelle colonne. |
limit |
Limita il numero di righe restituite. |
offset |
Salta un determinato numero di prime righe. |
label |
Imposta le etichette delle colonne. |
format |
I valori in determinate colonne vengono formattati utilizzando determinati modelli di formattazione. |
options |
Imposta opzioni aggiuntive. |
from |
La clausola from è stata eliminata dal linguaggio. |
Seleziona
La clausola select
viene utilizzata per specificare le colonne da restituire e il relativo ordine.
Se questa clausola non è specificata o se viene utilizzato select *
, tutte le colonne della tabella dell'origine dati vengono restituite nell'ordine originale.
Le colonne fanno riferimento agli identificatori (non alle etichette). Ad esempio, in un foglio di lavoro Google, gli identificatori di colonna sono una o due lettere della colonna (A, B, C, ...).
Gli elementi in una clausola select
possono essere identificatori di colonna o l'output di funzioni di aggregazione, funzioni di scalabilità o operatori.
Esempi:
select *
select dept, salary
select max(salary)
Nel seguente esempio, le virgolette iniziali vengono utilizzate per fare riferimento agli ID di colonna che contengono spazi (indirizzo email) o che sono parole riservate (data):
select `email address`, name, `date`
Esecuzione della query seguente nella tabella di esempio:
select lunchTime, name
Restituisce la seguente risposta:
pranzo | name |
---|---|
12:00:00 | Mario |
12:00:00 | Davide |
13:00:00 | Silvia |
12:00:00 | Ben |
12:00:00 | Dana |
13:00:00 | Michele |
Dove
La clausola where
viene utilizzata per restituire solo le righe che corrispondono a una condizione specificata.
I semplici operatori di confronto sono <=, <, >, >=, =,
!=, <>
. Entrambi gli operatori di confronto != <>
significano
diverso. Le stringhe vengono confrontate in base al valorelessicografico. Tieni presente che l'uguaglianza è indicata da =
, non da ==
come nella maggior parte dei linguaggi informatici.
Il confronto con null
viene
eseguito utilizzando is null
o is not null
.
Puoi unire più condizioni utilizzando gli operatori logici and
, or
e not
. Le parentesi possono essere utilizzate per definire la precedenza esplicita.
La clausola Dove supporta anche alcuni operatori di confronto delle stringhe più complessi.
Questi operatori prendono due stringhe come argomenti; qualsiasi argomento non stringa (ad esempio, date o numeri) verrà convertito in stringhe prima del confronto. La corrispondenza delle stringhe è sensibile alle maiuscole (per risolvere il problema, puoi utilizzare le
funzioni di scalabilità
upper()
o lower()
).
contains
: una corrispondenza per sottostringa. interocontains
parte è vero se parte è ovunque all'interno di intero. Esempio:where name contains 'John'
corrisponde a "John", "John Adams", "long John Silver" ma non "john adams".starts with
: una corrispondenza di prefisso. valuestarts with
prefix è true se prefix si trova all'inizio di value. Esempi:where dept starts with 'engineering'
corrisponde a "ingegnere" e "responsabili di ingegneria".where dept starts with 'e'
corrisponde a "ingegneria", "eng" ed "e".ends with
: una corrispondenza del suffisso. valueends with
suffix è true se suffix si trova alla fine di value. Esempio:where role ends with 'y'
corrisponde a "cowboy", "boy" e "y".matches
: una corrispondenza di espressione regolare (preg). haystackmatches
needle è true se l'espressione regolare in needle corrisponde a haystack. Esempi:where country matches '.*ia'
corrisponde a India e Nigeria, ma non a Indiana. Poiché questa non è una ricerca globale,where country matches 'an'
non corrisponderà a "Canada".like
: una ricerca di testo che supporta due caratteri jolly: %, che corrisponde a zero o più caratteri di qualsiasi tipo e _ (trattino basso) che corrisponde a qualsiasi carattere. È simile all'operatore SQL like. Esempio:where name like fre%
corrisponde a "fre", "fred" e "freddy".
Esempi:
where salary >= 600 where dept != 'Eng' and date '2005-01-21' < hireDate where (dept<>'Eng' and isSenior=true) or (dept='Sales') or seniorityStartTime is null
Esecuzione della query seguente nella tabella di esempio:
select name where salary > 700
Restituisce la seguente risposta:
name |
---|
Mario |
Michele |
Raggruppa per
La clausola group by
viene utilizzata per aggregare i valori nelle righe.
Viene creata una singola riga per ogni combinazione di valori distinta nella clausola group-by.
I dati vengono ordinati automaticamente in base alle colonne di raggruppamento, se non diversamente specificato da una clausola order by
.
Nota: se utilizzi una clausola group by
, tutte le colonne elencate nella clausola select
devono essere indicate nella clausola group by
o essere aggregate da una funzione di aggregazione.
Esempi:
select dept, max(salary) group by dept
Esecuzione della query seguente nella tabella di esempio:
select lunchTime, avg(salary), count(age) group by isSenior,lunchTime
Restituisce la seguente risposta:
pranzo | stipendio medio | conteggio-età |
---|---|---|
12:00:00 | 425 | 2 |
13:00:00 | 600 | 1 |
12:00:00 | 700 | 2 |
13:00:00 | 800 | 1 |
Pivot
La clausola pivot
viene utilizzata per trasformare valori distinti nelle colonne in nuove colonne. Ad esempio, un pivot di una colonna "anno" genera una tabella con una colonna per ogni anno distinto riportato nella tabella originale.
Ciò può essere utile se, ad esempio, una visualizzazione con i grafici a linee disegna ogni colonna come una linea separata. Se vuoi disegnare una riga separata per ogni anno e
"anno" è una delle colonne della tabella originale, una buona opzione
è usare un'operazione pivot per eseguire la necessaria trasformazione dei dati.
Nota: se utilizzi una clausola pivot
, tutte le colonne elencate nella clausola select
devono essere indicate nella clausola group by
o essere aggregate da una funzione di aggregazione.
Poiché più righe possono contenere gli stessi valori per le colonne pivot, pivot implica l'aggregazione. Tieni presente che se utilizzi pivot
senza
group by
, la tabella dei risultati conterrà esattamente una riga.
Ad esempio, eseguendo la seguente query sulla tabella di esempio:
select sum(salary) pivot dept
Restituisce la seguente risposta:
Retribuzione somma tecnica | Retribuzione somma di marketing | Retribuzione somma delle vendite |
---|---|---|
2100 | 800 | 750 |
Questo perché, 2100 è la somma degli stipendi per il reparto Ing, 800 per il reparto Marketing e così via.
L'utilizzo di pivot
insieme a group by
può essere ancora più utile, poiché crea una tabella in cui ogni cella contiene il risultato dell'aggregazione per la riga e la colonna pertinenti. Ad esempio, eseguendo la seguente query nella tabella di esempio:
select dept, sum(salary) group by dept pivot lunchTime
Restituisce la seguente risposta:
Rep | 12:00:00 somma salariale | 13:00:00 somma salariale |
---|---|---|
Nasale velare | 1500 | 600 |
Marketing | null | 800 |
Vendite | 750 | null |
Puoi anche "invertire" questa tabella, passando da colonne a righe e viceversa
passando dalle colonne pivot
a group by
. Esegui la seguente query nella tabella di esempio:
select lunchTime, sum(salary) group by lunchTime pivot dept
Restituisce la seguente risposta:
pranzo | Retribuzione somma tecnica | Retribuzione somma di marketing | Retribuzione somma delle vendite |
---|---|---|---|
12:00:00 | 1500 | null | 750 |
13:00:00 | 600 | 800 | null |
Nella clausola pivot
puoi anche utilizzare più di una colonna. In tal caso, le colonne della tabella di risposta sono composte da tutte le combinazioni uniche di valori presenti nelle colonne presenti nella tabella originale. Ad esempio, eseguendo la seguente query sulla tabella di esempio:
select sum(salary) pivot dept, lunchTime
Restituisce la seguente risposta:
Ing. 12:00:00 somma salariale | Ing. 13:00:00 somma salariale | Marketing,13:00:00 somma salariale | Vendite,12:00:00 somma salariale |
---|---|---|---|
1500 | 600 | 800 | 750 |
Tieni presente che solo le combinazioni che vengono visualizzate nella tabella originale hanno colonne corrispondenti nella tabella di risposta. Ecco perché non esiste una colonna per il marketing,12:00:00 o per le vendite,13:00:00.
È anche possibile utilizzare più di un'aggregazione. Ad esempio, eseguendo la seguente query nella tabella di esempio:
select sum(salary), max(lunchTime) pivot dept
Restituisce la seguente risposta:
Retribuzione somma tecnica | Retribuzione somma di marketing | Retribuzione somma delle vendite | Ing. max-lunchTime | Marketing max-lunchTime | Vendite max-lunchTime |
---|---|---|---|---|---|
2100 | 800 | 750 | 13:00:00 | 13:00:00 | 12:00:00 |
Puoi combinare più aggregazioni nella clausola select
, più colonne nella clausola group by
e più colonne nella clausola pivot
. Internamente, l'aggregazione viene eseguita dalla
concatenazione delle colonne del gruppo tramite clausole pivot e pivot.
Le colonne specificate nella clausola pivot
non possono essere visualizzate nelle clausole select
, group by
o order by
.
Quando si utilizza pivot
, la clausola order by
non può contenere colonne di aggregazione. Il motivo è che per ogni aggregazione specificata nella clausola select
vengono generate molte colonne nella tabella dei risultati. Tuttavia, puoi formattare le colonne di aggregazione quando viene utilizzato pivot
. Il risultato di questo formato è che tutte le nuove colonne pertinenti per l'aggregazione specifica generate dall'operazione pivot sono formattate in base al pattern specificato. Nell'esempio precedente, l'aggiunta di format sum(salary) "some_format_string"
influirà sulle seguenti colonne: stipendio Eng, stipendio per il marketing e stipendio per le vendite.
Puoi etichettare le colonne di aggregazione. Se nella clausola label
non è specificata alcuna etichetta, l'etichetta di una colonna prodotta a seguito di pivot è composta dall'elenco dei valori nelle colonne pivot, dal tipo di aggregazione (min, max, somma, ...) e dall'etichetta della colonna aggregata.
Ad esempio "Salario, Eng,12:00:00". Se è stata specificata una sola aggregazione nella clausola select
, la parte di aggregazione viene rimossa dall'etichetta e viene conservato solo l'elenco di valori nelle colonne pivot. Ad esempio, "Eng,12:00:00". Quando una clausola label
specifica un'etichetta per una colonna di aggregazione, l'etichetta richiesta viene aggiunta all'elenco di valori, sia quando è presente una sola aggregazione nella clausola select
, sia quando ce n'è più di una. Ad esempio, label sum(salary) "sumsal"
restituirà le etichette di colonna "Eng,12:00:00 sommas", "Eng,13:00:00 sumsal" ecc.
Ordina per
La clausola order by
viene utilizzata per ordinare le righe in base ai valori nelle colonne specificate.
Gli elementi in una clausola order by
possono essere identificatori di colonna o l'output di funzioni di aggregazione, funzioni di scalabilità o operatori.
Esempi:
order by dept, salary desc
select dept, max(salary) group by dept order by max(salary)
Limite
La clausola limit
viene utilizzata per limitare il numero di righe restituite.
Esempio:
limit 100
Offset
La clausola offset
viene usata per saltare un determinato numero di prime righe.
Se viene utilizzata una clausola limit
, offset
viene applicato per primo: ad esempio, limit 15 offset
30
restituisce le righe da 31 a 45.
Esempi:
offset 10 limit 30 offset 210
Etichetta
La clausola label
viene utilizzata per impostare l'etichetta per una o più colonne.
Non è possibile utilizzare un valore etichetta al posto di un ID in una query.
Gli elementi in una clausola label
possono essere identificatori di colonna o l'output di funzioni di aggregazione, funzioni di scalabilità o operatori.
Sintassi:
label column_id label_string [,column_id label_string]
column_id
- L'identificatore della colonna a cui viene assegnata l'etichetta.
label_string
- L'etichetta da assegnare alla colonna. Molte visualizzazioni utilizzano l'etichetta della colonna come testo da mostrare all'utente finale, ad esempio l'etichetta di una legenda in un grafico a torta. Le etichette sono valori letterali di stringa e seguono queste regole di sintassi.
Esempio:
L'esempio seguente imposta l'etichetta per la colonna dept su "Reparto", l'etichetta per la colonna del nome su "Nome dipendente" e l'etichetta per la colonna del luogo su "Sede del dipendente":
label dept 'Department', name "Employee Name", location 'Employee Location'
Formato
La clausola format
viene utilizzata per specificare un valore formattato per le celle in una o più colonne. I dati restituiti dovrebbero includere sia un valore effettivo sia un valore formattato per ogni cella di una colonna formattata. Molte visualizzazioni utilizzano il valore non formattato per i calcoli, ma il valore formattato per la visualizzazione. I pattern specificati in questa clausola vengono generalmente restituiti nella proprietà pattern delle colonne corrispondenti.
Sintassi del pattern:
number
,date
,timeofday
edatetime
- I pattern date e number definiti dalla ICU.
-
boolean
- Il pattern è un
string
nel formato "value-if-true:value-if-false".
Esempio:
format salary '#,##0.00', hireDate 'dd-MMM-yyyy', isSenior 'Yes!:Not yet'
Opzioni
La clausola options
viene utilizzata per controllare le opzioni aggiuntive per l'esecuzione delle query. Le parole chiave che possono seguire la clausola options
sono:
-
no_format
rimuove i valori formattati dal risultato e lascia solo i valori sottostanti. Può essere utilizzato quando la visualizzazione specifica non utilizza i valori formattati per ridurre le dimensioni della risposta. -
no_values
rimuove i valori sottostanti dal risultato e lascia solo i valori formattati. Può essere utilizzato quando la visualizzazione specifica utilizza solo i valori formattati per ridurre le dimensioni della risposta.
Funzioni di manipolazione dei dati
Esistono diversi tipi di operatori e funzioni che consentono di manipolare o aggregare i dati in una singola colonna o di confrontare o combinare i dati tra le colonne. Alcuni esempi sono sum() (per aggiungere tutti i valori in una colonna), max (per trovare il valore più alto in una colonna) e + (per aggiungere i valori di due colonne nella stessa riga).
Alcune funzioni possono essere visualizzate in qualsiasi clausola, mentre altre possono essere visualizzate in un sottoinsieme di clausole. Questo è documentato di seguito.
Esempio:
Data la tabella... | Se applichiamo questa query... | Otteniamo questo risultato. | ||||||||||||||||||||||||
|
select upper(name), year(startDate) |
|
Le seguenti funzioni di manipolazione dei dati sono definite dal linguaggio di query dell'API Visualizzazione Google:
Funzioni di aggregazione
Le funzioni di aggregazione vengono trasmesse a una singola identificatore di colonna
ed eseguono un'azione su tutti i valori di ogni gruppo (i gruppi vengono specificati dalle clausole group by
o pivot
) o da tutte le righe se non vengono utilizzate).
Esempi:
select max(salary) // Returns a table with one column and one row. select max(salary) group by dept // Returns a table with the max salary for each dept column value. select max(salary) pivot dept // Returns a one-row table with a column for each dept, // and the max salary for that department.
Le funzioni di aggregazione possono essere utilizzate nelle clausole select
, order by
, label
e format
.
Non possono essere visualizzate nelle clausole where
, group by
, pivot
, limit
, offset
o options
.
Di seguito sono riportate le funzioni di aggregazione supportate:
Nome | Descrizione | Tipi di colonne supportati | Tipo restituito |
---|---|---|---|
avg() |
Restituisce il valore medio di tutti i valori nella colonna per un gruppo. | number |
number |
count() |
Restituisce il conteggio degli elementi nella colonna specificata per un gruppo. Le celle nulle non vengono conteggiate. | Qualsiasi tipo | number |
max() |
Restituisce il valore massimo nella colonna per un gruppo. Le date vengono confrontate con quelle precedenti, che sono più piccole, in questo caso i string vengono messi a confronto in ordine alfabetico, con sensibilità alle maiuscole. |
Qualsiasi tipo | Stesso tipo della colonna |
min() |
Restituisce il valore minimo nella colonna per un gruppo. Le date vengono confrontate con quelle precedenti, in questo caso le dimensioni string sono in ordine alfabetico, con sensibilità alle maiuscole |
Qualsiasi tipo | Stesso tipo della colonna |
sum() |
Restituisce la somma di tutti i valori della colonna per un gruppo. | number |
number |
Nota: le funzioni di aggregazione possono utilizzare solo un identificatore di colonna come argomento:
max(startDate) // OK min(firstScore) + min(secondScore) // OK max(year(startDate)) // INVALID. max requires column ID sum(salary + perks) // INVALID. sum requires column ID.
Funzioni scalari
Le funzioni scalate operano su zero o più parametri per produrre un altro valore. Le funzioni scalari possono essere trasmesse a qualsiasi espressione che restituisca il parametro del tipo appropriato. Tieni presente che questi tipi sono i tipi definiti nella sezione Litrial di questo documento, che potrebbe essere leggermente diverso dagli oggetti JavaScript con nome simile.
Tieni presente che il nome della colonna verrà modificato includendo una funzione scalare.
Le funzioni scalari possono prendere come parametro tutto ciò che valuta un singolo valore:
year(max(startDate)) datediff(now(), todate(1234567890000))
Le funzioni scalari possono essere utilizzate in una qualsiasi delle seguenti clausole: select
, where
, group by
, pivot
, order by
, label,
e
format
.
Nome | |
---|---|
year() |
Restituisce il valore dell'anno da una data o un valore timestamp. Ad esempio:
Parametri: un parametro di tipo
date o datetime .Tipo di reso:
number |
month() |
Restituisce il valore del mese in base zero da una data o un valore timestamp. Ad esempio:
Parametri: un parametro di tipo
date o datetime .Tipo di reso:
number |
day() |
Restituisce il giorno del mese da un valore di Parametri: un parametro di tipo
date o datetime .Tipo di reso:
number |
hour() |
Restituisce il valore orario da un valore timestamp o Parametri: un parametro di tipo
datetime o timeofday .Tipo di reso:
number |
minute() |
Restituisce il valore al minuto da un valore Parametri: un parametro di tipo
datetime o timeofday .Tipo di reso:
number |
second() |
Restituisce il secondo valore da un valore Parametri: un parametro di tipo
datetime o timeofday .Tipo di reso:
number |
millisecond() |
Restituisce la parte in millisecondi di un valore Parametri: un parametro di tipo
datetime o timeofday .Tipo di reso:
number |
quarter() |
Restituisce il trimestre da un valore di Parametri: un parametro di tipo
date o datetime .Tipo di reso:
number |
dayOfWeek() |
Restituisce il giorno della settimana da un valore Parametri: un parametro di tipo
date o datetime .Tipo di reso:
number |
now() |
Restituisce un valore data/ora che rappresenta l'attuale Parametri: nessuno
Tipo di reso:
datetime |
dateDiff() |
Restituisce la differenza di giorni tra due valori Parametri: due parametri di tipo
date o datetime (uno dei due)Tipo di reso:
number |
toDate() |
Trasforma il valore specificato in un valore
Parametri: un parametro di tipo
date , datetime o number .Tipo di reso:
date |
upper() |
Restituisce Parametri:un parametro di tipo
string .Tipo di reso:
string |
lower() |
Restituisce Parametri:un parametro di tipo
string .Tipo di reso:
string |
Operatori aritmetici
Puoi utilizzare gli operatori aritmetici per eseguire operazioni matematiche su qualsiasi elemento che restituisca un numero singolo (ovvero l'output di funzioni, operatori o costanti aggregate appropriate).
Esempi:
select empSalary - empTax select 2 * (max(empSalary) / max(empTax))
Sono definiti i seguenti operatori:
Nome | Descrizione | Parametri | Tipo restituito |
---|---|---|---|
+ |
Restituisce la somma di due valori number . |
Due number |
number |
- |
Restituisce la differenza tra due valori number . |
Due number |
number |
* |
Restituisce il prodotto di due number . |
Due number |
number |
/ |
Restituisce il quoziente di due number . La divisione per zero restituisce null. |
Due number |
number |
Elementi della lingua
Letterali
I valori letterali sono valori utilizzati per confronti o compiti. I valori letterali possono essere string
, numeri, valori booleani o vari tipi di data e ora. Ecco alcuni esempi di valori letterali utilizzati nella sintassi delle query:
where startDate < date "2008-03-18" // date "2008-03-18" is a date literal
limit 30 // 30 is a numeric literal
format salary '#,##0.00', isSenior 'not yet:of course!' // '#,##0.00' and 'not yet:of course!' are both string
literals
Ecco i formati per ogni tipo di valore letterale:
string
Un valore letterale
string
deve essere racchiuso tra virgolette singole o doppie. Esempi:"fourteen" 'hello world' "It's raining"
.-
number
- I valori letterali numerici sono specificati con notazione decimale.
Esempi:
3 3.0 3.14 -71 -7.2 .6
-
boolean
- I valori letterali booleani sono
true
ofalse
. -
date
- Utilizza la parola chiave
date
seguita da un valore letteralestring
nel formatoyyyy-MM-dd
. Esempio:date "2008-03-18"
. -
timeofday
- Utilizza la parola chiave
timeofday
seguita da un valore letteralestring
nel formatoHH:mm:ss[.SSS]
Esempio:timeofday "12:30:45"
. -
datetime
- Una data e un'ora, utilizzando la parola chiave
datetime
o la parola chiavetimestamp
seguita da un valore letteralestring
nel formatoyyyy-MM-dd HH:mm:ss[.sss]
. Esempio:datetime '2008-03-18 12:30:34.123'
Identificatori
Gli identificatori (o ID) sono testi string
che identificano le colonne.
Importante: se il tuo identificatore
- Ha spazi,
- Si tratta di un termine prenotato,
- Contiene qualsiasi elemento tranne caratteri alfanumerici o trattini bassi ([a-zA-Z0-9_]), oppure
- Inizia con una cifra
deve essere racchiuso tra virgolette (non virgolette singole).
In caso contrario, non è necessario citare il tuo identificatore. Tieni presente che non tutte le parole chiave definite dalla sintassi sono parole riservate; pertanto, ad esempio, puoi utilizzare "max" come identificatore, senza citazione preventiva.
Esempi: col1 employee_table `start
date` `7 days traffic` `select`
Sconsigliamo di scegliere un identificatore che richiede le virgolette iniziali, perché può essere facile dimenticarsi di queste ultime o usare accidentalmente le virgolette singole anziché le virgolette. Si tratta di errori comuni e spesso difficili da debug.
Sensibilità alle richieste
Gli identificatori e i valori letterali delle stringhe sono sensibili alle maiuscole. Tutti gli altri elementi linguistici non fanno distinzione tra maiuscole e minuscole.
Parole riservate
Le seguenti parole riservate devono essere racchiuse tra virgolette se utilizzate come identificatore:
and asc by date datetime desc false format group label limit not offset options or order pivot select timeofday timestamp true where