Если вам нужен connection_id с наименьшим apis, тогда вы можете отсортировать массив, а затем взять запись с наименьшим apis [0]
select yyyy_mm_dd, property_id, connection_id
from
(
select yyyy_mm_dd, property_id, connection_id, apis,
row_number() over(partition by yyyy_mm_dd, property_id order by api0 ) rn
from
(
select yyyy_mm_dd, property_id, connection_id, apis, sort_array(apis)[0] as api0
from mytable
)s
)s
where rn=1;
И если массив является строкой, а не целым числом, он не будет работать с сортировкой,Вы можете взорвать массив, привести его к типу int и взять запись с самым низким API:
select yyyy_mm_dd, property_id, connection_id
from
(
select yyyy_mm_dd, property_id, connection_id, apis,
row_number() over(partition by yyyy_mm_dd, property_id order by api ) rn
from
(
select t.yyyy_mm_dd, t.property_id, t.connection_id, t.apis, cast(e.api as int) as api
from mytable t
lateral view explode(apis) e as api
)s
)s
where rn=1;