Mysql
 sql >> база данни >  >> RDS >> Mysql

MAX() срещу GREATEST() в MySQL:Каква е разликата?

На пръв поглед MySQL MAX() и GREATEST() функции изпълняват подобна операция. И двете връщат максималната стойност от диапазон от стойности. Има обаче разлика между тези две функции.

Най-добрият начин да видите разликата между тези две функции е да сравните техния синтаксис.

Синтаксис

Синтаксисът за всяка функция е така:

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

Така че вече изглеждат съвсем различно. MAX() функцията приема DISTINCT ключова дума, както и OVER клауза (и GREATEST() функцията не работи).

Въпреки това, основната разлика между тези две функции е в приетите аргументи. По-конкретно:

  • MAX() приема един аргумент
  • GREATEST() приема множество аргументи

Така че MAX() обикновено се използва за връщане на максималната стойност в колона в база данни. Таблицата може да съдържа много редове, но тази функция връща този с максимална стойност.

GREATEST() от друга страна, връща аргумента с максимална стойност от списъка с аргументи, предадени към него. Така че можете да предадете 3 аргумента на тази функция и тя ще върне този с най-голяма стойност.

Пример 1 – Функцията MAX()

Ето пример за демонстриране на MAX() функция.

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

Резултат:

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

Този пример намира града с най-голямо население от City маса. Колоната, която съдържа населението за всеки град, се нарича Population .

Ключовият момент в този пример е, че на функцията е предоставен само един аргумент, но са запитани множество реда.

Ако се опитате да предадете множество аргументи към MAX() функция, ще получите грешка.

Пример 2 – НАЙ-ГОЛЯМАТА() функция

Ето един пример за демонстрация на GREATEST() функция.

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

Резултат:

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

Така че в този случай предоставяме три аргумента. Всеки аргумент се сравнява с другия. Това е в контраст с единичния аргумент, предоставен на MAX() функция.

Ако се опитате да предадете единичен аргумент на GREATEST() функция, ще получите грешка.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как ефективно да намерите най-близките места в близост до дадено местоположение

  2. WAMP/MySQL грешки не са на правилния език

  3. Създайте персонализиран метод за доставка в OpenCart:Част втора

  4. TIMESTAMP() Примери – MySQL

  5. SUBDATE() Примери – MySQL