평균을 얻으려고하는 것 같습니다.
NULL
대신 0
을 사용하면됩니다. 이렇게하면 분모가 0이 아닌 행 수와 같아집니다. asset_revenue
. 행 매주 수익을 표현하거나 7
요구가 다른 이유로 보존 할 경우,이 작업을 수행 할 경우
SELECT SUM([asset_revenue])/
CASE
WHEN SUM([asset_revenue]) <> 0 THEN SUM(CASE WHEN asset_revenue <> 0 THEN 1 ELSE 0 END)
ELSE 1 -- Special case where asset_revenue is zero across the entire time period. 0/1 is still zero, so that represents an average revenue of zero.
END
:
SELECT SUM([asset_revenue])/
CASE
WHEN SUM([asset_revenue]) <> 0 THEN SUM(CASE WHEN asset_revenue <> 0 THEN 7 ELSE 0 END)
ELSE 1 -- Special case where asset_revenue is zero across the entire time period. 0/1 is still zero, so that represents an average revenue of zero.
END
@Strawberry은 행이 매일 수익을 나타내는 경우
이유를으로 수정하면 스크립트에서 NULL
을 반환합니다. NULL
은 값이인지 알 수 없음을 의미합니다. 값이 무엇인지 모르는 경우 알 수없는 값을 산술 연산에 넣고 결과를 요청할 때 어떤 일이 발생하는지 알 수 없습니다. 55에 미지의 가치를 더한 것은 무엇입니까? 나는 모른다!
감사합니다. 그러나 일 수를 통합하려면 7을 사용해야합니다. – pandoo
대단히 반갑습니다. 나는 나의 대답을 업데이트했다. 그러나 'asset_revenue'가 0이 아닌 날에는 분모가 * 1을 합산하기 때문에'1 '이 올바른 것 같습니다. 즉, 매일 수익이 발생하면 결과는 7 + 1 + 1 + 1 + 1 + 1 + 1의 합계가됩니다. –
나는 이것을 시도했지만 다음과 같은 오류가 발생했습니다. 오류가 발생했습니다. – pandoo