Получение максимального значения из строки, содержащей нули, минус - PullRequest
0 голосов
/ 11 апреля 2011

У меня есть запрос, который вычисляет среднее значение, которое я использовал union all в запросе, чтобы получить данные, которые я, наконец, использовал функцию max.

При возвращении union результат выглядит примерно так: -

col 1      col2
1            0
2            0
3            0
4            0
0            -1
0            2
0            3
0            4

поэтому, когда я делаю макс, он возвращает мне 0 вместо -1

мой запрос выглядит так: -

select max(col1), max(col2)
from mytbl

Я получаю набор результатов, подобный этому: -

max(col1)      max(col2)
1               0
2               2
3               3
4               4

Может кто-нибудь сказать мне, как я могу максимально от 0 и отрицательное значение в запросе.

Ответы [ 2 ]

1 голос
/ 11 апреля 2011

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

0 голосов
/ 11 апреля 2011

Помогает ли это?

select max(t1.col1), max(t2.col2) from mytbl t1 left join mytbl t2 on t2.col2 <= 0 where t1.col1 <= 0;

Ваш запрос

select max(col1), max(col2)
from mytbl

не может выбрать несколько строк, поскольку MAX является функцией агрегирования.

...