문제

내 데이터에서 0을 생략하려면 어떻게해야합니까?

예를 들어 최소 기능을 사용합니까? 0을 제외한 최소값을 원합니다 ...

다음으로 가장 큰 것을 얻으려면 어떻게해야합니까?

MIN(availables.price)

또한 AVG 기능을 사용하는 경우 일반적으로 같은 방식으로 0을 건너 뛰는 방법이 있습니까? 문제는 내가 상속받은 테이블이 NULL 값을 사용하지 않지만 모든 재무 데이터에 대해 0.00을 가지고 있다는 것입니다.

감사,

도움이 되었습니까?

해결책

노력하다:

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

AVG 와도 작동합니다.

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

다른 팁

Ruby on Rails를 사용하고 있습니까? 나는 이것이 Ruby-on-Rails로 태그를 지정하기 때문에 당신이 단순히 할 수 있습니다.

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

또는

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

도움이되기를 바랍니다 =)

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

쿼리에서 0을 where 절.

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

어쩌면 그것은 일을 할 수 있습니다

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

또한 0보다 적은 것을 제외하려면> 플로트 또는 소형 플로트 데이터 유형을 사용하는 경우 부동 소수점 반올림 문제에주의하십시오.

널이있는 경우 where 절 열을 isnull (availables.price, 0.0)으로 래핑하여 그것들을 배제 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top