/* syntax version 1 */ /* postgres can not */ select key, min_by(AsTuple(subkey, value), AsTuple(subkey, value)) as min, max_by(AsTuple(subkey, value), AsTuple(subkey, value)) as max from ( select key, (case when length(subkey) != 0 then subkey else null end) as subkey, (case when length(value) != 0 then value else null end) as value from plato.Input ) group by key