67 lines
2.4 KiB
SQL
67 lines
2.4 KiB
SQL
-- Demonstrate the use of flux "selector" aggregates via SQL
|
|
-- IOX_SETUP: AllTypes
|
|
|
|
-- select * so the tests are more self describing / understandable
|
|
SELECT * from m;
|
|
|
|
---- Note: all the tests below tests float, int, uint, string, and bool types and then a few together
|
|
|
|
--------
|
|
-- FIRST Selector
|
|
--------
|
|
select selector_first(float_field, time) from m;
|
|
select selector_first(int_field, time) from m;
|
|
select selector_first(uint_field, time) from m;
|
|
select selector_first(string_field, time) from m;
|
|
select selector_first(bool_field, time) from m;
|
|
|
|
-- Test extracting value and time subfields
|
|
select selector_first(float_field, time)['value'], selector_first(float_field, time)['time'] from m;
|
|
-- Also with subqueries
|
|
select f['value'], f['time'] from (select selector_first(float_field, time) as f from m) as sq;
|
|
|
|
|
|
--------
|
|
-- LAST Selector
|
|
--------
|
|
select selector_last(float_field, time) from m;
|
|
select selector_last(int_field, time) from m;
|
|
select selector_last(uint_field, time) from m;
|
|
select selector_last(string_field, time) from m;
|
|
select selector_last(bool_field, time) from m;
|
|
|
|
-- Test extracting value and time subfields
|
|
select selector_last(float_field, time)['value'], selector_last(float_field, time)['time'] from m;
|
|
-- Also with subqueries
|
|
select f['value'], f['time'] from (select selector_last(float_field, time) as f from m) as sq;
|
|
|
|
|
|
--------
|
|
-- MIN Selector
|
|
--------
|
|
select selector_min(float_field, time) from m;
|
|
select selector_min(int_field, time) from m;
|
|
select selector_min(uint_field, time) from m;
|
|
select selector_min(string_field, time) from m;
|
|
select selector_min(bool_field, time) from m;
|
|
|
|
-- Test extracting value and time subfields
|
|
select selector_min(float_field, time)['value'], selector_min(float_field, time)['time'] from m;
|
|
-- Also with subqueries
|
|
select f['value'], f['time'] from (select selector_min(float_field, time) as f from m) as sq;
|
|
|
|
|
|
--------
|
|
-- MAX Selector
|
|
--------
|
|
select selector_max(float_field, time) from m;
|
|
select selector_max(int_field, time) from m;
|
|
select selector_max(uint_field, time) from m;
|
|
select selector_max(string_field, time) from m;
|
|
select selector_max(bool_field, time) from m;
|
|
|
|
-- Test extracting value and time subfields
|
|
select selector_max(float_field, time)['value'], selector_max(float_field, time)['time'] from m;
|
|
-- Also with subqueries
|
|
select f['value'], f['time'] from (select selector_max(float_field, time) as f from m) as sq;
|