1

データのゼロを省略するにはどうすればよいですか?

たとえば、MIN関数を使用しますか?0以外の最小値をお願いします。

どうすれば次に大きいものを手に入れることができますか?

MIN(availables.price)

また、AVG関数を使用している場合、同じ方法で0をスキップする一般的な方法はありますか?問題は、私が継承したテーブルがNULL値を使用していないが、すべての財務データに対して0.00を持っていることです。

ありがとう、

4

7 に答える 7

8

試す:

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

AVGでも動作します:

SELECT
    avg(x)
    FROM ....
    where x<>0
于 2009-09-01T14:26:26.780 に答える
5

レールにルビーを使用していますか?これはruby-on-railsとしてタグ付けされているので、私はあなたがそうだと思いました。その場合、あなたは簡単に行うことができます

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

また

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

それが役立つことを願っています=)

于 2009-09-01T14:29:51.873 に答える
3
SELECT  MIN(CASE price WHEN 0 THEN NULL ELSE price END)
FROM    availables
于 2009-09-01T14:25:03.520 に答える
2

where句を使用してクエリからゼロを除外するだけです。

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

select avg(price)
from price_table
where price > 0;
于 2009-09-01T14:28:04.780 に答える
2
SELECT MIN(availables.price) FROM availables WHERE availables.price <> 0.0

0未満のものを除外する場合は、>を使用することもできます。floatまたはsmallfloatデータ型を使用している場合は、浮動小数点の丸めの問題に注意してください。

NULLがある場合は、where句の列をISNULL(availables.price、0.0)でラップして、それらを除外することもできます。

于 2009-09-01T14:28:21.033 に答える
2
SELECT  MIN(price)
FROM    availables
WHERE price <> 0
于 2009-09-01T14:28:31.267 に答える
2

多分それは仕事をすることができます

SELECT MIN(availables.price)
FROM   availables
WHERE  0 < availables.price
于 2009-09-01T14:29:00.317 に答える