Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MAX() vs GREATEST() w MySQL:jaka jest różnica?

Na pierwszy rzut oka MySQL MAX() i GREATEST() funkcje wykonują podobną operację. Obie zwracają maksymalną wartość z zakresu wartości. Istnieje jednak różnica między tymi dwiema funkcjami.

Najlepszym sposobem, aby zobaczyć różnicę między tymi dwiema funkcjami, jest porównanie ich składni.

Składnia

Składnia każdej funkcji wygląda następująco:

MAX([DISTINCT] expr) [over_clause]
GREATEST(value1,value2,...)

Już teraz wyglądają zupełnie inaczej. MAX() funkcja akceptuje DISTINCT słowo kluczowe oraz OVER klauzula (oraz GREATEST() funkcja nie).

Jednak kluczowa różnica między tymi dwiema funkcjami tkwi w akceptowanym argumencie/ach. W szczególności:

  • MAX() akceptuje jeden argument
  • GREATEST() akceptuje wiele argumentów

Więc MAX() jest zwykle używany do zwracania maksymalnej wartości w kolumnie w bazie danych. Tabela może zawierać wiele wierszy, ale ta funkcja zwraca ten z maksymalną wartością.

GREATEST() z drugiej strony zwraca argument o maksymalnej wartości z listy przekazanych do niego argumentów. Możesz więc przekazać, powiedzmy, 3 argumenty do tej funkcji, a zwróci ona ten z największą wartością.

Przykład 1 – Funkcja MAX()

Oto przykład demonstrujący MAX() funkcja.

SELECT MAX(Population) AS 'Result'
FROM City;

Wynik:

+----------+
| Result   |
+----------+
| 10500000 |
+----------+

W tym przykładzie znajduje się miasto o największej populacji z City stół. Kolumna zawierająca populację każdego miasta nazywa się Population .

Kluczową kwestią w tym przykładzie jest to, że do funkcji podano tylko jeden argument, ale zapytano wiele wierszy.

Jeśli spróbujesz przekazać wiele argumentów do MAX() funkcja, otrzymasz błąd.

Przykład 2 – Funkcja NAJWIĘKSZY()

Oto przykład demonstrujący GREATEST() funkcja.

SELECT GREATEST(1, 5, 9) AS 'Result';

Wynik:

+--------+
| Result |
+--------+
|      9 |
+--------+

Tak więc w tym przypadku podajemy trzy argumenty. Każdy argument jest porównywany z drugim. Jest to przeciwieństwo pojedynczego argumentu dostarczonego do MAX() funkcja.

Jeśli spróbujesz przekazać pojedynczy argument do GREATEST() funkcja, otrzymasz błąd.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać rozmiar bazy danych MySQL?

  2. Jak wyświetlić błąd zapytania w PDO PHP

  3. Jakiego typu danych użyć dla pola haszowanego hasła i jakiej długości?

  4. MySQL Data - Najlepszy sposób na zaimplementowanie stronicowania?

  5. MYSQL Wybierz MAX Date w oświadczeniu dołączenia