SQL聚合函数使用MIN和AVG

hol*_*den 1 sql average aggregate ruby-on-rails aggregate-functions

如何在数据中省略零?

例如使用MIN功能?我希望最小值除了0 ...

我怎样才能获得下一个最大的?

MIN(availables.price)
Run Code Online (Sandbox Code Playgroud)

如果我使用AVG功能,还有一种通常的方法可以以相同的方式跳过0吗?问题是我继承的表不使用NULL值,但对所有财务数据都有0.00.

谢谢,

KM.*_*KM. 8

尝试:

SELECT
    MIN(x)
    FROM ....
    where x<>0
Run Code Online (Sandbox Code Playgroud)

也适用于AVG:

SELECT
    avg(x)
    FROM ....
    where x<>0
Run Code Online (Sandbox Code Playgroud)

  • 这假设您没有处理负值. (2认同)

Sta*_*len 5

你在铁轨上使用红宝石吗?我认为你是因为它被标记为ruby-on-rails,在这种情况下,你可以简单地做

Available.minimum(:price, :conditions => "price > 0")
Run Code Online (Sandbox Code Playgroud)

要么

Available.average(:price, :conditions => "price > 0")
Run Code Online (Sandbox Code Playgroud)

希望有帮助=)