Oracle: выберите максимальное значение из различных столбцов той же строки

Целый вопрос находится в значительной степени в заголовке. Для каждой строки таблицы я хотел бы выбрать максимум подмножества столбцов.

Например, от этой таблицы

name m1 m2 m3 m4
A    1  2  3  4
B    6  3  4  5
C    1  5  2  1

результат был бы

name max
A    4
B    6
C    5

Запрос должен быть совместимым оракулом 8i.

32
задан Matt 19 November 2015 в 12:59
поделиться

1 ответ

Учитывая эти тестовые данные...

SQL> select *
  2  from your_table
  3  /

NAME         M1         M2         M3         M4
---- ---------- ---------- ---------- ----------
A             1          2          3          4
B             6          3          4          5
C             1          5          2          1

SQL>

... прямой вызов GREATEST() даст желаемый результат:

SQL> select name
  2          , greatest(m1,m2,m3,m4)
  3  from your_table
  4  /

NAME GREATEST(M1,M2,M3,M4)
---- ---------------------
A                        4
B                        6
C                        5

SQL>
73
ответ дан 27 November 2019 в 20:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: