如何在数据中省略零?
例如使用MIN功能?我希望最小值除了0 ...
我怎样才能获得下一个最大的?
MIN(availables.price)
如果我正在使用AVG功能,还有一种通常的方法可以以相同的方式跳过0吗?问题是我继承的表不使用NULL值,但所有财务数据都有0.00。
谢谢,
答案 0 :(得分:8)
尝试:
SELECT
MIN(x)
FROM ....
where x<>0
也适用于AVG:
SELECT
avg(x)
FROM ....
where x<>0
答案 1 :(得分:5)
Available.minimum(:price, :conditions => "price > 0")
或
Available.average(:price, :conditions => "price > 0")
希望有帮助=)
答案 2 :(得分:3)
SELECT MIN(CASE price WHEN 0 THEN NULL ELSE price END)
FROM availables
答案 3 :(得分:2)
只需使用where
子句将零保留在查询之外。
select min(price)
from price_table
where price > 0;
select avg(price)
from price_table
where price > 0;
答案 4 :(得分:2)
SELECT MIN(availables.price) FROM availables WHERE availables.price <> 0.0
您还可以使用&gt;如果要排除小于0的任何内容。如果使用float或smallfloat数据类型,请注意浮点舍入问题。
如果有NULL,你也可以在ISNULL中包含where子句列(availables.price,0.0)以排除这些。
答案 5 :(得分:2)
SELECT MIN(price)
FROM availables
WHERE price <> 0
答案 6 :(得分:2)
也许它可以做这项工作
SELECT MIN(availables.price)
FROM availables
WHERE 0 < availables.price