mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-27 01:51:59 +00:00
64 lines
5.5 KiB
SQL
64 lines
5.5 KiB
SQL
-- { echoOn }
|
|
|
|
-- The function name is case insensitive, with or without respect nulls and using any of the aliases
|
|
Select number, first_value (number) RESPECT NULLS over (order by number) from numbers(1);
|
|
Select number, First_value (number) RESPECT NULLS over (order by number) from numbers(1);
|
|
Select number, FIRST_VALUE (number) RESPECT NULLS over (order by number) from numbers(1);
|
|
Select number, FIRST_VALUE (number) over (order by number) from numbers(1);
|
|
Select number, first_value_respect_nulls (number) over (order by number) from numbers(1);
|
|
Select number, any (number) RESPECT NULLS over (order by number) from numbers(1);
|
|
Select number, any_value (number) RESPECT NULLS over (order by number) from numbers(1);
|
|
|
|
Select number, last_value (number) RESPECT NULLS over (order by number) from numbers(1);
|
|
Select number, Last_value (number) RESPECT NULLS over (order by number) from numbers(1);
|
|
Select number, LAST_VALUE (number) RESPECT NULLS over (order by number) from numbers(1);
|
|
Select number, LAST_VALUE (number) over (order by number) from numbers(1);
|
|
Select number, last_value_respect_nulls (number) over (order by number) from numbers(1);
|
|
Select number, anyLast (number) RESPECT NULLS over (order by number) from numbers(1);
|
|
|
|
-- IGNORE NULLS should be accepted too
|
|
Select number, FIRST_VALUE (number) IGNORE NULLS over (order by number) from numbers(1);
|
|
Select number, LAST_VALUE (number) IGNORE NULLS over (order by number) from numbers(1);
|
|
|
|
-- When applying IGNORE NULLs to first_value_respect_nulls we go back to the original function (any)
|
|
Select first_value_respect_nulls (number) IGNORE NULLS from (SELECT if(number < 2, NULL, number) as number FROM numbers(10));
|
|
Select FIRST_VALUE_respect_nulls (number) IGNORE NULLS from (SELECT if(number < 2, NULL, number) as number FROM numbers(10));
|
|
Select last_value_respect_nulls (number) IGNORE NULLS from (SELECT if(number < 2, NULL, number) as number FROM numbers(10));
|
|
Select LAST_VALUE_respect_nulls (number) IGNORE NULLS from (SELECT if(number < 2, NULL, number) as number FROM numbers(10));
|
|
|
|
-- IGNORE/RESPECT NULLS should work with combinators because we can do it
|
|
SELECT first_valueIf (number, NOT isNull(number) AND (assumeNotNull(number) > 5)) RESPECT NULLS from (SELECT if(number < 2, NULL, number) as number FROM numbers(10));
|
|
SELECT last_valueIf (number, NOT isNull(number) AND (assumeNotNull(number) > 5)) RESPECT NULLS from (SELECT if(number < 2, NULL, number) as number FROM numbers(10));
|
|
SELECT first_valueIf (number, isNull(number)) RESPECT NULLS from (SELECT if(number > 8, NULL, number) as number FROM numbers(10));
|
|
SELECT last_valueIf (number, isNull(number)) RESPECT NULLS from (SELECT if(number > 8, NULL, number) as number FROM numbers(10));
|
|
SELECT toTypeName(first_valueIfState(number, isNull(number)) RESPECT NULLS) from (SELECT if(number > 8, NULL, number) as number FROM numbers(10));
|
|
SELECT toTypeName(last_valueIfState(number, isNull(number)) RESPECT NULLS) from (SELECT if(number > 8, NULL, number) as number FROM numbers(10));
|
|
SELECT FIRST_VALUEIf (number, NOT isNull(number) AND (assumeNotNull(number) > 5)) RESPECT NULLS from (SELECT if(number < 2, NULL, number) as number FROM numbers(10));
|
|
SELECT LAST_VALUEIf (number, NOT isNull(number) AND (assumeNotNull(number) > 5)) RESPECT NULLS from (SELECT if(number < 2, NULL, number) as number FROM numbers(10));
|
|
SELECT anyIf (number, isNull(number)) RESPECT NULLS from (SELECT if(number > 8, NULL, number) as number FROM numbers(10));
|
|
SELECT anyLastIf (number, isNull(number)) RESPECT NULLS from (SELECT if(number > 8, NULL, number) as number FROM numbers(10));
|
|
SELECT toTypeName(FIRST_VALUEIfState(number, isNull(number)) RESPECT NULLS) from (SELECT if(number > 8, NULL, number) as number FROM numbers(10));
|
|
SELECT toTypeName(LAST_VALUEIfState(number, isNull(number)) RESPECT NULLS) from (SELECT if(number > 8, NULL, number) as number FROM numbers(10));
|
|
|
|
-- Unsupported functions should throw in the server
|
|
SELECT number, sum (number) RESPECT NULLS over (order by number) from numbers(1); -- { serverError NOT_IMPLEMENTED }
|
|
SELECT number, avgIf (number) RESPECT NULLS over (order by number) from numbers(1); -- { serverError NOT_IMPLEMENTED }
|
|
-- Same for double RESPECT NULLS
|
|
SELECT number, first_value_respect_nulls (number) RESPECT NULLS over (order by number) from numbers(1); -- { serverError NOT_IMPLEMENTED }
|
|
SELECT number, last_value_respect_nulls (number) RESPECT NULLS over (order by number) from numbers(1); -- { serverError NOT_IMPLEMENTED }
|
|
|
|
-- Aggregate_functions_null_for_empty should work the same way
|
|
SELECT toTypeName(any(number) RESPECT NULLS) from numbers(1);
|
|
SELECT toTypeName(anyOrNull(number) RESPECT NULLS) from numbers(1);
|
|
SELECT any(number) RESPECT NULLS from numbers(0);
|
|
SELECT anyOrNull(number) RESPECT NULLS from numbers(0);
|
|
SELECT any(number) RESPECT NULLS from (Select NULL::Nullable(UInt8) as number FROM numbers(10));
|
|
SELECT anyOrNull(number) RESPECT NULLS from (Select NULL::Nullable(UInt8) as number FROM numbers(10));
|
|
SELECT any(number) RESPECT NULLS from (Select if(number > 8, NULL, number) as number FROM numbers(10));
|
|
SELECT anyOrNull(number) RESPECT NULLS from (Select if(number > 8, NULL, number) as number FROM numbers(10));
|
|
SELECT any(number) RESPECT NULLS from (Select if(number < 8, NULL, number) as number FROM numbers(10));
|
|
SELECT anyOrNull(number) RESPECT NULLS from (Select if(number < 8, NULL, number) as number FROM numbers(10));
|
|
|
|
SELECT toTypeName(any(number) RESPECT NULLS) from numbers(1) SETTINGS aggregate_functions_null_for_empty = 1;
|
|
SELECT any(number) RESPECT NULLS from numbers(0) SETTINGS aggregate_functions_null_for_empty = 1;
|