Skip to content

Commit ddd9849

Browse files
committed
use min/max
1 parent 4d3f546 commit ddd9849

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

datafusion/functions-aggregate/src/percentile_cont.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -759,12 +759,22 @@ fn calculate_percentile<T: ArrowNumericType>(
759759
Some(values[0])
760760
} else if percentile == 0.0 {
761761
// Get minimum value
762-
values.sort_by(cmp);
763-
Some(values[0])
762+
Some(
763+
values
764+
.iter()
765+
.min_by(|a, b| cmp(a, b))
766+
.expect("we checked for len > 0 a few lines above")
767+
.clone(),
768+
)
764769
} else if percentile == 1.0 {
765770
// Get maximum value
766-
values.sort_by(cmp);
767-
Some(values[len - 1])
771+
Some(
772+
values
773+
.iter()
774+
.max_by(|a, b| cmp(a, b))
775+
.expect("we checked for len > 0 a few lines above")
776+
.clone(),
777+
)
768778
} else {
769779
// Calculate the index using the formula: p * (n - 1)
770780
let index = percentile * ((len - 1) as f64);

0 commit comments

Comments
 (0)