2014-06-18 3 views
0

두 숫자 사이의 증가 비율을 계산해야합니다. 아래 예제에서는 시작 값이 첫 번째 값이고 현재 값이 두 번째 값입니다. 다음 쿼리를 시도 할 때 예상대로 결과가 나와 있지 않습니다.MSSQL 비율 계산이 일치하지 않습니다.

SELECT (CAST (68 as float)/CAST (1 as float) * 100) --current value 68, start value 1, the percentage of growth is 68% --MSSQL is giving the result 6800, which is 100 times too high

SELECT (CAST (30 as float)/CAST (10 as float) * 100) --current value 30, start value 10, the percentage of growth is 300% --MSSQL is giving the result 300, which makes sense

SELECT (CAST (20 as float)/CAST (40 as float) * 100) --current value 20, start value 40, the percentage of growth is -50% --MSSQL is giving the result 50, which somewhat makes sense

나는 각 상황에 대한 일관된 출력을 얻을하는 데 사용해야 쿼리

그래서 그래프에 적절한 표시를 사용할 수 있습니까?

답변

0

MySQL이 올바르게 계산하고 있습니다. 귀하의 백분율 증가 계산 (귀하의 의견)은 이상하게 보입니다.

예. 첫 번째 예 : 시작 값 68, 현재 값 1 (68/1) * 100 = 6800. 68 % 증가하려면 시작 값이 68이 아닌 1.68이어야합니다. 그러면 시작 값은 168 %가됩니다. 현재 값. I.E. 그것은 68 % 성장했습니다.

세 번째 예 : (20/40) * 100 = (1/2) * 100 = 50 시작 값은 현재 값의 절반이므로 50 %가 맞습니다.

+0

주석의 현재 값과 시작 값을 역전하여 지금 수정했습니다. 그러나 여전히 모든 세 가지 가치 시나리오에 사용할 수있는 단일 쿼리가 궁금합니다. ' – Dutch

+0

아, 네, 지금 봅니다. 68로 성장하면 실제로 6800 %입니다. 비록 이것이 68 %에 불과했지만 :-). 답변 해 주셔서 감사합니다. – Dutch

관련 문제