Merge pull request #2855 from housepower/hotfix/quantile_return_nan

return nan when quantileExact with empty float column
This commit is contained in:
alexey-milovidov 2018-08-13 12:32:55 +03:00 committed by GitHub
commit b7e169cb6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 2 deletions

View File

@ -77,7 +77,7 @@ struct QuantileExact
return array[n];
}
return Value();
return std::numeric_limits<Value>::quiet_NaN();
}
/// Get the `size` values of `levels` quantiles. Write `size` results starting with `result` address.

View File

@ -72,7 +72,7 @@ struct QuantileExactWeighted
size_t size = map.size();
if (0 == size)
return Value();
return std::numeric_limits<Value>::quiet_NaN();
/// Copy the data to a temporary array to get the element you need in order.
using Pair = typename Map::value_type;

View File

@ -19,3 +19,11 @@ nan
nan
nan
0
----quantile----
45
0
nan
nan
nan
nan
nan

View File

@ -139,4 +139,17 @@ SELECT corr(x_value, y_value) FROM (SELECT x_value, y_value FROM test.series LIM
SELECT round(abs(corr(x_value, y_value) - covarPop(x_value, y_value) / (stddevPop(x_value) * stddevPop(y_value))), 6) FROM test.series;
/* quantile AND quantileExact */
SELECT '----quantile----';
SELECT quantileExactIf(number, number > 0) FROM numbers(90);
SELECT quantileExactIf(number, number > 100) FROM numbers(90);
SELECT quantileExactIf(toFloat32(number) , number > 100) FROM numbers(90);
SELECT quantileExactIf(toFloat64(number) , number > 100) FROM numbers(90);
SELECT quantileIf(number, number > 100) FROM numbers(90);
SELECT quantileIf(toFloat32(number) , number > 100) FROM numbers(90);
SELECT quantileIf(toFloat64(number) , number > 100) FROM numbers(90);
DROP TABLE test.series;