Подтвердить что ты не робот

Самое большое значение из двух или более полей

Мне нужно получить наибольшее значение из двух полей:

SELECT MAX(field1), MAX(field2)

Теперь, как я могу получить наибольшее значение из этих двух?

4b9b3361

Ответ 1

Вы можете использовать функцию GREATEST():

SELECT GREATEST(field1, field2);

Если вы хотите получить абсолютный максимум из всех строк, вы можете использовать следующее:

SELECT GREATEST(MAX(field1), MAX(field2));

Пример 1:

SELECT GREATEST(1, 2);
+----------------+
| GREATEST(1, 2) |
+----------------+
|              2 |
+----------------+
1 row in set (0.00 sec)

Пример 2:

CREATE TABLE a (a int, b int);

INSERT INTO a VALUES (1, 1);
INSERT INTO a VALUES (2, 1);
INSERT INTO a VALUES (3, 1);
INSERT INTO a VALUES (1, 2);
INSERT INTO a VALUES (1, 4);

SELECT GREATEST(MAX(a), MAX(b)) FROM a;
+--------------------------+
| GREATEST(MAX(a), MAX(b)) |
+--------------------------+
|                        4 |
+--------------------------+
1 row in set (0.02 sec)

Ответ 2

Если вы выбрали GREATEST() для каждой строки

SELECT GREATEST(field1, field2)

Он вернет NULL, если одно из полей NULL. Вы можете использовать IFNULL для решения этой проблемы.

SELECT GREATEST(IFNULL(field1, 0), IFNULL(field2, 0))

Ответ 3

mysql> SELECT GREATEST(2,0);
        -> 2

Итак, попробуйте:

mysql> SELECT GREATEST(MAX(field1), MAX(field2));

Ответ 4

SELECT max( CASE
                WHEN field1 > field2 THEN field1
                ELSE field2
            END ) as biggestvalue 
FROM YourTable;