A prima vista, MySQL MAX()
e GREATEST()
le funzioni eseguono un'operazione simile. Entrambi restituiscono il valore massimo da un intervallo di valori. Tuttavia, c'è una differenza tra queste due funzioni.
Il modo migliore per vedere la differenza tra queste due funzioni è confrontare la loro sintassi.
Sintassi
La sintassi per ciascuna funzione è la seguente:
MAX([DISTINCT] expr) [over_clause] GREATEST(value1,value2,...)
Quindi già, sembrano completamente diversi. Il MAX()
la funzione accetta il DISTINCT
parola chiave e un OVER
clausola (e il GREATEST()
la funzione non lo fa).
Tuttavia, la differenza chiave tra queste due funzioni è negli argomenti accettati. Nello specifico:
MAX()
accetta un argomentoGREATEST()
accetta più argomenti
Quindi MAX()
viene in genere utilizzato per restituire il valore massimo in una colonna in un database. La tabella può contenere molte righe, ma questa funzione restituisce quella con il valore massimo.
GREATEST()
d'altra parte, restituisce l'argomento con valore massimo dall'elenco di argomenti passati ad esso. Quindi potresti passare ad esempio 3 argomenti a questa funzione e restituirà quello con il valore più grande.
Esempio 1 – La funzione MAX()
Ecco un esempio per dimostrare il MAX()
funzione.
SELECT MAX(Population) AS 'Result' FROM City;
Risultato:
+----------+ | Result | +----------+ | 10500000 | +----------+
Questo esempio trova la città con la popolazione più numerosa in City
tavolo. La colonna che contiene la popolazione di ogni città si chiama Population
.
Il punto chiave di questo esempio è che è stato fornito un solo argomento alla funzione, ma sono state interrogate più righe.
Se provi a passare più argomenti a MAX()
funzione riceverai un errore.
Esempio 2 – La funzione GREATEST()
Ecco un esempio per dimostrare il GREATEST()
funzione.
SELECT GREATEST(1, 5, 9) AS 'Result';
Risultato:
+--------+ | Result | +--------+ | 9 | +--------+
Quindi, in questo caso, forniamo tre argomenti. Ogni argomento viene confrontato con l'altro. Ciò è in contrasto con il singolo argomento fornito a MAX()
funzione.
Se provi a passare un singolo argomento a GREATEST()
funzione riceverai un errore.