Выбрать минимальное значение, но не ноль mySQL

Рейтинг: 0Ответов: 1Опубликовано: 24.06.2023

В таблице есть столбец с цифрами. Некоторые из них - 0. Как одним запросом выбрать из столбца минимальное не равное нулю значение, а также максимальное? Спасибо. UPD В выборку должны попасть нули тоже, но одновременно определить минимальное ненулевое. Сейчас вот так, но минимальное всегда ноль получается

SELECT ... MIN(0+price) as min, MAX(0+price) as max FROM ...

Ответы

▲ 0

Попробуйте так:

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