Как найти максимум каждой строки в таблице в MYSQL - PullRequest
2 голосов
/ 23 апреля 2020

У меня есть эта таблица, которая имеет N строк. здесь я упрощаю его до 3 строк.

Пример таблицы

        A                   B                   C                      D
5.640700669769904   5.623475843268976   5.644739934022418
5.62489798487818    5.581388826442135   5.62376476667017
5.62708139972593    5.606610562903928   5.592366625377977

Мне нужно найти новый столбец D, который состоит из максимума строки для столбцов A, B, C .

в MYSQL MAX (X) применяется только к столбцу. Как бы я решить эту проблему?

Я пробовал с под таблицами, но не повезло.

1 Ответ

3 голосов
/ 23 апреля 2020

max() - это агрегатная функция, которая работает со значениями, которые хранятся в строках (хотя некоторые базы данных, а именно SQLite, позволяют использовать его для списка значений).

Вы можете использовать greatest(), чтобы получить наибольшее значение по трем столбцам в каждой строке:

select t.*, greatest(a, b, c) d from mytable

С другой стороны, если вам нужно наибольшее значение по всем 3 столбцам и всем строкам , вы можете использовать оба max() и greatest() вместе:

select max(greatest(a, b, c)) overall_greatest from mytable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...