2023-12-26 19:09:34 +00:00
|
|
|
-- { echoOn }
|
|
|
|
SET compile_aggregate_expressions=0;
|
|
|
|
|
|
|
|
WITH
|
|
|
|
arrayJoin([1, 2, 3, nan, 4, 5]) AS data,
|
|
|
|
arrayJoin([nan, 1, 2, 3, 4]) AS data2,
|
|
|
|
arrayJoin([1, 2, 3, 4, nan]) AS data3,
|
|
|
|
arrayJoin([nan, nan, nan]) AS data4,
|
|
|
|
arrayJoin([nan, 1, 2, 3, nan]) AS data5
|
|
|
|
SELECT
|
|
|
|
min(data),
|
|
|
|
min(data2),
|
|
|
|
min(data3),
|
|
|
|
min(data4),
|
|
|
|
min(data5);
|
|
|
|
|
|
|
|
WITH
|
|
|
|
arrayJoin([1, 2, 3, nan, 4, 5]) AS data,
|
|
|
|
arrayJoin([nan, 1, 2, 3, 4]) AS data2,
|
|
|
|
arrayJoin([1, 2, 3, 4, nan]) AS data3,
|
|
|
|
arrayJoin([nan, nan, nan]) AS data4,
|
|
|
|
arrayJoin([nan, 1, 2, 3, nan]) AS data5
|
|
|
|
SELECT
|
|
|
|
max(data),
|
|
|
|
max(data2),
|
|
|
|
max(data3),
|
|
|
|
max(data4),
|
|
|
|
max(data5);
|
|
|
|
|
|
|
|
Select max(number) from numbers(100) settings max_threads=1, max_block_size=10;
|
|
|
|
Select max(-number) from numbers(100);
|
|
|
|
Select min(number) from numbers(100) settings max_threads=1, max_block_size=10;
|
|
|
|
Select min(-number) from numbers(100);
|
|
|
|
|
|
|
|
SELECT minIf(number, rand() % 2 == 3) from numbers(10) settings max_threads=1, max_block_size=5;
|
|
|
|
SELECT maxIf(number, rand() % 2 == 3) from numbers(10) settings max_threads=1, max_block_size=5;
|
|
|
|
|
|
|
|
SELECT minIf(number::Float64, rand() % 2 == 3) from numbers(10) settings max_threads=1, max_block_size=5;
|
|
|
|
SELECT maxIf(number::Float64, rand() % 2 == 3) from numbers(10) settings max_threads=1, max_block_size=5;
|
|
|
|
|
|
|
|
SELECT minIf(number::String, number < 10) as number from numbers(10, 1000);
|
|
|
|
SELECT maxIf(number::String, number < 10) as number from numbers(10, 1000);
|
|
|
|
SELECT maxIf(number::String, number % 3), maxIf(number::String, number % 5), minIf(number::String, number % 3), minIf(number::String, number > 10) from numbers(400);
|
|
|
|
|
|
|
|
SELECT minIf(number::Nullable(String), number < 10) as number from numbers(10, 1000);
|
|
|
|
SELECT maxIf(number::Nullable(String), number < 10) as number from numbers(10, 1000);
|
|
|
|
|
|
|
|
SELECT min(n::Nullable(String)) from (Select if(number < 15 and number % 2 == 1, number * 2, NULL) as n from numbers(10, 20));
|
|
|
|
SELECT max(n::Nullable(String)) from (Select if(number < 15 and number % 2 == 1, number * 2, NULL) as n from numbers(10, 20));
|
|
|
|
|
2024-01-22 13:55:52 +00:00
|
|
|
SELECT max(number) from (Select if(number % 2 == 1, NULL, -number::Int8) as number FROM numbers(128));
|
|
|
|
SELECT min(number) from (Select if(number % 2 == 1, NULL, -number::Int8) as number FROM numbers(128));
|
|
|
|
|
2023-12-26 19:09:34 +00:00
|
|
|
SELECT argMax(number, now()) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMax(number, now()) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMax(number, 1) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMax(number, 1) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMax(number::String, 1) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMax(number::String, 1) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMax(number, now() + number) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMax(number, now() + number) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMaxIf(number, now() + number, number % 10 < 20) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMaxIf(number, now() + number, number % 10 < 20) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMaxIf(number, now() + number, number % 10 > 20) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMaxIf(number, now() + number, number % 10 > 20) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMax(number, number::Float64) from numbers(2029);
|
|
|
|
SELECT argMaxIf(number, number::Float64, number > 2030) from numbers(2029);
|
|
|
|
SELECT argMaxIf(number, number::Float64, number > 2030) from numbers(2032);
|
|
|
|
SELECT argMax(number, -number::Float64) from numbers(2029);
|
|
|
|
SELECT argMaxIf(number, -number::Float64, number > 2030) from numbers(2029);
|
|
|
|
SELECT argMaxIf(number, -number::Float64, number > 2030) from numbers(2032);
|
|
|
|
|
|
|
|
SELECT argMin(number, now()) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMin(number, now()) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMin(number, 1) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMin(number, 1) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMin(number::String, 1) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMin(number::String, 1) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMin(number, now() + number) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMin(number, now() + number) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMinIf(number, now() + number, number % 10 < 20) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMinIf(number, now() + number, number % 10 < 20) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMinIf(number, now() + number, number % 10 > 20) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=100;
|
|
|
|
SELECT argMinIf(number, now() + number, number % 10 > 20) FROM (Select number as number from numbers(10, 10000)) settings max_threads=1, max_block_size=20000;
|
|
|
|
SELECT argMin(number, number::Float64) from numbers(2029);
|
|
|
|
SELECT argMinIf(number, number::Float64, number > 2030) from numbers(2029);
|
|
|
|
SELECT argMinIf(number, number::Float64, number > 2030) from numbers(2032);
|
|
|
|
SELECT argMin(number, -number::Float64) from numbers(2029);
|
|
|
|
SELECT argMinIf(number, -number::Float64, number > 2030) from numbers(2029);
|
|
|
|
SELECT argMinIf(number, -number::Float64, number > 2030) from numbers(2032);
|
|
|
|
|
|
|
|
Select argMax((n, n), n) t, toTypeName(t) FROM (Select if(number % 3 == 0, NULL, number) as n from numbers(10));
|
|
|
|
Select argMaxIf((n, n), n, n < 5) t, toTypeName(t) FROM (Select if(number % 3 == 0, NULL, number) as n from numbers(10));
|
|
|
|
Select argMaxIf((n, n), n, n > 5) t, toTypeName(t) FROM (Select if(number % 3 == 0, NULL, number) as n from numbers(10));
|
|
|
|
|
|
|
|
Select argMin((n, n), n) t, toTypeName(t) FROM (Select if(number % 3 == 0, NULL, number) as n from numbers(10));
|
|
|
|
Select argMinIf((n, n), n, n < 5) t, toTypeName(t) FROM (Select if(number % 3 == 0, NULL, number) as n from numbers(10));
|
|
|
|
Select argMinIf((n, n), n, n > 5) t, toTypeName(t) FROM (Select if(number % 3 == 0, NULL, number) as n from numbers(10));
|
|
|
|
|
|
|
|
SET compile_aggregate_expressions=1;
|
|
|
|
SET min_count_to_compile_aggregate_expression=0;
|
|
|
|
|
|
|
|
WITH
|
|
|
|
arrayJoin([1, 2, 3, nan, 4, 5]) AS data,
|
|
|
|
arrayJoin([nan, 1, 2, 3, 4]) AS data2,
|
|
|
|
arrayJoin([1, 2, 3, 4, nan]) AS data3,
|
|
|
|
arrayJoin([nan, nan, nan]) AS data4,
|
|
|
|
arrayJoin([nan, 1, 2, 3, nan]) AS data5
|
|
|
|
SELECT
|
|
|
|
min(data),
|
|
|
|
min(data2),
|
|
|
|
min(data3),
|
|
|
|
min(data4),
|
|
|
|
min(data5);
|
|
|
|
|
|
|
|
WITH
|
|
|
|
arrayJoin([1, 2, 3, nan, 4, 5]) AS data,
|
|
|
|
arrayJoin([nan, 1, 2, 3, 4]) AS data2,
|
|
|
|
arrayJoin([1, 2, 3, 4, nan]) AS data3,
|
|
|
|
arrayJoin([nan, nan, nan]) AS data4,
|
|
|
|
arrayJoin([nan, 1, 2, 3, nan]) AS data5
|
|
|
|
SELECT
|
|
|
|
max(data),
|
|
|
|
max(data2),
|
|
|
|
max(data3),
|
|
|
|
max(data4),
|
|
|
|
max(data5);
|
|
|
|
|
|
|
|
SELECT minIf(number, rand() % 2 == 3) from numbers(10);
|
|
|
|
SELECT maxIf(number, rand() % 2 == 3) from numbers(10);
|
|
|
|
|
|
|
|
SELECT minIf(number::Float64, rand() % 2 == 3) from numbers(10);
|
|
|
|
SELECT maxIf(number::Float64, rand() % 2 == 3) from numbers(10);
|
|
|
|
|
|
|
|
SELECT minIf(number::String, number < 10) as number from numbers(10, 1000);
|
|
|
|
SELECT maxIf(number::String, number < 10) as number from numbers(10, 1000);
|
|
|
|
SELECT maxIf(number::String, number % 3), maxIf(number::String, number % 5), minIf(number::String, number % 3), minIf(number::String, number > 10) from numbers(400);
|
|
|
|
|
|
|
|
SELECT minIf(number::Nullable(String), number < 10) as number from numbers(10, 1000);
|
|
|
|
SELECT maxIf(number::Nullable(String), number < 10) as number from numbers(10, 1000);
|
|
|
|
|
|
|
|
SELECT min(n::Nullable(String)) from (Select if(number < 15 and number % 2 == 1, number * 2, NULL) as n from numbers(10, 20));
|
|
|
|
SELECT max(n::Nullable(String)) from (Select if(number < 15 and number % 2 == 1, number * 2, NULL) as n from numbers(10, 20));
|
2024-01-24 20:03:46 +00:00
|
|
|
|
|
|
|
SELECT max(number::Nullable(Decimal64(3))) from numbers(11) settings max_block_size=10;
|
|
|
|
SELECT min(-number::Nullable(Decimal64(3))) from numbers(11) settings max_block_size=10;
|