Mysql
 sql >> Database >  >> RDS >> Mysql

MAX() vs GREATEST() in MySQL:qual è la differenza?

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 argomento
  • GREATEST() 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.