使用 MIN 和 AVG 的 SQL 聚合函数

发布于 2024-08-04 00:03:20 字数 215 浏览 5 评论 0原文

如何在数据中省略零?

例如使用 MIN 函数?我想要除 0 之外的最小值...

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

MIN(availables.price)

如果我使用 AVG 函数,是否有一种通用方法可以以相同的方式跳过 0?问题是我继承的表不使用 NULL 值,但所有财务数据都为 0.00。

谢谢,

How can I omit Zeros in my data?

For example using the MIN function? I would like the Minimum value except a 0...

How can I get the next largest?

MIN(availables.price)

Also is there a generally way to skip over 0s in the same way if I'm using the AVG function? The problem is the table I've inherited doesn't use NULL values but has 0.00 for all financial data.

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

阳光下慵懒的猫 2024-08-11 00:03:20

尝试:

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

也适用于 AVG:

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

try:

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

works with AVG too:

SELECT
    avg(x)
    FROM ....
    where x<>0
薄荷梦 2024-08-11 00:03:20

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

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

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

希望有帮助 =)

are you using ruby on rails? i supposed you are since this is tagged as ruby-on-rails, in that case, you can simply do

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

or

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

hope that helps =)

梦晓ヶ微光ヅ倾城 2024-08-11 00:03:20
SELECT  MIN(CASE price WHEN 0 THEN NULL ELSE price END)
FROM    availables
SELECT  MIN(CASE price WHEN 0 THEN NULL ELSE price END)
FROM    availables
懒的傷心 2024-08-11 00:03:20

只需使用 where 子句将零排除在查询之外即可。

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

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

Just leave the zeros out of the query with a where clause.

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

select avg(price)
from price_table
where price > 0;
2024-08-11 00:03:20
SELECT  MIN(price)
FROM    availables
WHERE price <> 0
SELECT  MIN(price)
FROM    availables
WHERE price <> 0
沉鱼一梦 2024-08-11 00:03:20

也许它可以完成这项工作

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

Maybe it could do the work

SELECT MIN(availables.price)
FROM   availables
WHERE  0 < availables.price
浅唱ヾ落雨殇 2024-08-11 00:03:20
SELECT MIN(availables.price) FROM availables WHERE availables.price <> 0.0

您还可以使用 >如果您想排除小于 0 的任何值。如果您使用 float 或smallfloat 数据类型,请小心浮点舍入问题。

如果存在 NULL,您还可以将 where 子句列包装在 ISNULL(availables.price, 0.0) 中以也排除它们。

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

You can also use > if you want to exclude anything less than 0. Be careful about floating point rounding issues if you are using float or smallfloat data types.

If there are NULLs, you can also wrap the where clause column in a ISNULL(availables.price, 0.0) to exclude those as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文