Funzioni SQL Min e Max

Funzioni SQL Min e Max
Che si tratti di lavorare con ANSI SQL o altri sapori SQL, sei destinato a imbatterti in funzioni Min () e Max () nelle operazioni aggregate. Sono alcune delle funzioni essenziali per compiti semplici e operazioni di aggregazione complesse. Questo articolo esplorerà ciò che ogni funzione fa, la sintassi corrispondente ed esempi pratici di quando utilizzare queste funzioni. Nota: questo tutorial illustrerà come utilizzare queste funzioni in ANSI SQL, noto anche come SQL standard. Tuttavia, dovrebbero eseguire azioni simili anche in altri sapori SQL.

Funzione sql min ()

Cominciamo con la funzione min (). Questa funzione consente di recuperare il valore più piccolo in un insieme di valori dati. È possibile fornire i valori di input come colonna numerica o un risultato di un'espressione che restituisce un valore numerico.

La funzione min () è una funzione aggregata e restituisce un singolo valore numerico da un determinato input.

La sintassi della funzione può essere espressa come mostrato:

Min (espressione)

La funzione accetta un singolo argomento come espressione o un determinato set di colonne.

Prendi l'esempio di seguito:

SELEZIONARE
Min (x) come il più piccolo
DA
Unnest ([100, 102, 2, 233, 11, 12]) come x;

L'esecuzione del codice sopra dovrebbe restituire il valore più piccolo dall'array dato.

più piccolo |
--------+
2 |

Funzioni SQL max ()

Come suggerisce il nome, la funzione max () consente di ottenere il numero più grande in un determinato set di valori numerici. Allo stesso modo, è possibile passare l'insieme di valori come colonna numerica o un risultato di una data espressione che restituisce un valore numerico.

La sintassi della funzione è come mostrata:

Max (espressione)

Considera l'esempio seguente:

SELEZIONARE
Max (x) come il più grande
DA
Unnest ([100, 102, 2, 233, 11, 12]) come x;

Il codice sopra dovrebbe prendere il valore più grande dall'array dato. Un output di esempio è come mostrato:

più grande |
-------+
233 |

Dati di esempio

Usiamo meglio i dati del mondo accurati per illustrare vari usi delle funzioni Min e Max. Prendi i dati di esempio mostrati di seguito:

Crea database local_db;
Usa local_db;
Crea database di tabelle (
id int non null Identity (1,1) Key primario,
server_name varchar (50),
server_address varchar (255) non null,
compressione_method varchar (100) predefinito "nessuno",
size_on_disk float non null,
size_ float compresso,
total_records int non null
);
Inserisci in database (server_name, server_address, comprepression_method, size_on_disk, size_compressed, total_records)
Valori ('mysql', 'localhost: 3306', 'lz77', 90.66, 40.04, 560000),
('Redis', 'LocalHost: 6307', 'Snappy', 3.55, 998.2, 100000),
('Postgresql', 'LocalHost: 5432', 'pglz', 101.2, 98.01, 340000),
("Elasticsearch", 'LocalHost: 9200', 'LZ4', 333.2, 300.2, 1200000),
("Mongodb", "localhost: 27017", "snappy", 4.55, 4.10, 620000),
('Apache Cassandra', 'LocalHost: 9042', 'ZSTD', 300.3, 200.12, 10000000);
Seleziona * dai database;

NOTA: i dati sopra sono puramente immaginari e non rappresentano funzionalità di database effettive o rapporto di compressione.

Tabella di output:

Esempio 1 - Utilizzo di funzioni Min e Max su una singola colonna

Possiamo usare le funzioni Min e Max su una data colonna della tabella per recuperare il valore più piccolo e più grande dalla colonna, rispettivamente.

Ad esempio, per ottenere il database con le dimensioni più piccole sul disco, possiamo eseguire la query come:

SELEZIONARE
Min (size_on_disk) come piccolo_size
DA
BANCHE DATI;

La query sopra dovrebbe restituire la dimensione più piccola dalla colonna size_on_disk, come mostrato nell'output di seguito:

più piccolo_size |
-------------+
3.55 |

Per le dimensioni più grandi, utilizzare la funzione massima:

SELEZIONARE
Max (size_on_disk) come più grande_size
DA
BANCHE DATI;

Risultato:

più grande_size |
------------+
333.2 |

Esempio 2 - Utilizzo di funzioni Min e Max con gruppo di

Possiamo anche includere altre colonne che utilizzano il gruppo per funzione quando si lavora con una funzione aggregata.

Ad esempio, per mostrare Server_Name:

SELEZIONARE
Max (size_on_disk) come più grande_size,
nome del server
DA
BANCHE DATI
Gruppo per server_name;

Il gruppo per clausola è determinante quando si classificano i dati in partizioni specifiche e si trovano un valore minimo o massimo da ciascuna divisione.

Esempio 3 - Usando Min e Max nella stessa query

Possiamo anche usare due funzioni aggregate nella stessa query, come mostrato nell'output di seguito:

SELEZIONARE
Max (size_on_disk) come più grande_size,
Min (size_on_disk) come piccolo_size
DA
BANCHE DATI;

Un output di esempio è come mostrato:

più grande_size | più piccolo_size |
------------+-------------+
333.2 | 3.55 |

Esempio 4 - Combinando le funzioni Min e Max con la clausola

L'esempio seguente mostra come utilizzare le funzioni min e max () per filtrare i risultati usando la clausola.

Seleziona server_name, max (total_records) come più grande
Dal gruppo di database di server_name con max (total_records) = 100000;

Output risultante:

server_name | più grande |
-----------+-------+
Redis | 100000 |

Chiusura

In questo post, abbiamo ampiamente esplorato come utilizzare le funzioni Min e Max () in SQL. Abbiamo anche discusso di esempi pratici dell'uso di queste due funzioni nelle tue applicazioni.