Skip to content

Inline ORDER BY drops arguments for approximate percentile aggregates #24410

Description

@haohuaijin

Describe the bug

Inline ORDER BY handling unconditionally removes the first aggregate argument.

This breaks approx_percentile_cont, where the first argument is the percentile rather than the ordered value.

To Reproduce

CREATE TABLE aggregate_test_repro AS
SELECT c1, c3
FROM (
    VALUES
        ('a', CAST(10 AS DOUBLE)),
        ('a', CAST(20 AS DOUBLE)),
        ('b', CAST(30 AS DOUBLE))
) AS t(c1, c3);
SELECT c1, approx_percentile_cont(0.95, 200 ORDER BY c3)
FROM aggregate_test_repro
GROUP BY c1;

The query fails with:

Percentile value must be between 0.0 and 1.0 inclusive, 200 is invalid

The weighted variant also loses its weight argument:

approx_percentile_cont_with_weight(1, 0.95 ORDER BY c3)

Expected behavior

No response

Additional context

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions