Выбрать минимальное значение, но не ноль mySQL
В таблице есть столбец с цифрами. Некоторые из них - 0. Как одним запросом выбрать из столбца минимальное не равное нулю значение, а также максимальное? Спасибо. UPD В выборку должны попасть нули тоже, но одновременно определить минимальное ненулевое. Сейчас вот так, но минимальное всегда ноль получается
SELECT ... MIN(0+price) as min, MAX(0+price) as max FROM ...
Ответы (1 шт):
Автор решения: ValNik
→ Ссылка
Попробуйте так:
create table test (id int,price int);
insert into test values
(1,1)
,(2,0)
,(3,3)
,(4,2);
select *
,min(case when price<>0 then price else null end)over() minNot0
,max(price)over() maxPrice
from test;
Получится
| id | price | minNot0 | maxPrice |
|---|---|---|---|
| 1 | 1 | 1 | 3 |
| 2 | 0 | 1 | 3 |
| 3 | 3 | 1 | 3 |
| 4 | 2 | 1 | 3 |