Pergunta

Como posso omitir zeros nos meus dados?

Por exemplo, usando a função Min? Eu gostaria do valor mínimo, exceto um 0 ...

Como posso obter o próximo maior?

MIN(availables.price)

Também existe uma maneira de pular mais de 0s da mesma maneira se eu estiver usando a função AVG? O problema é que a tabela que herdei não usa valores nulos, mas tem 0,00 para todos os dados financeiros.

Obrigado,

Foi útil?

Solução

tentar:

SELECT
    MIN(x)
    FROM ....
    where x<>0

Funciona com AVG também:

SELECT
    avg(x)
    FROM ....
    where x<>0

Outras dicas

Você está usando Ruby on Rails? Eu supunha que você é, já que isso é marcado como rubi-se-haste, nesse caso, você pode simplesmente fazer

Available.minimum(:price, :conditions => "price > 0")

ou

Available.average(:price, :conditions => "price > 0")

Espero que ajude =)

SELECT  MIN(CASE price WHEN 0 THEN NULL ELSE price END)
FROM    availables

Basta deixar os zeros fora da consulta com um where cláusula.

select min(price)
from price_table
where price > 0;

select avg(price)
from price_table
where price > 0;
SELECT  MIN(price)
FROM    availables
WHERE price <> 0

Talvez pudesse fazer o trabalho

SELECT MIN(availables.price)
FROM   availables
WHERE  0 < availables.price
SELECT MIN(availables.price) FROM availables WHERE availables.price <> 0.0

Você também pode usar> se deseja excluir algo menos que 0. Cuidado com os problemas de arredondamento de pontos flutuantes se estiver usando tipos de dados float ou smallfloat.

Se houver nulos, você também poderá embrulhar a coluna da cláusula WHERE em um isnull (upnables.price, 0,0) para excluí -las também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top