MySQL выбрать самый последний из нескольких столбцов

У меня есть таблица с несколькими столбцами даты, ниже приведен пример столбцов моей таблицы: tbl.user_id, tbl.date_1, tbl.date_2, tbl.date_3

Мне нужно придумать запрос, который вернет user_id а также most_recent_date где большинство most_recent_date самая последняя дата между date_1, date_2 и date_3. Я думаю, что мне нужен вложенный выбор здесь, но я не могу выработать логику для этого. Я надеюсь, что кто-то может указать мне правильное направление здесь.

1 ответ

Решение

Вы пробовали функцию Greatest()?

Вот быстрый пример:

SELECT
    userId,
    greatest(dt1, dt2, dt3)
FROM testTbl;

Вероятно, вы пробовали использовать функцию Max(), как в большинстве языков программирования. Однако в SQL Max является функцией агрегирования. В нем можно указать только одно поле, и оно будет возвращать наибольшее значение в этом столбце, сгруппированное по группам, указанным в GROUP BY.

Функция Greatest() в mySQL является эквивалентом функции Max() из большинства других языков.

Другие вопросы по тегам