Hi Kenan,
Here is a thought (ignoring the indicator type for now):
{
devices as var(func: type(Device), first: 100) @filter(gt(count,4))
q(func: uid(devices), first:2) @cascade(count) {
name
count
has_object @filter(type(Object)) (first:2) {
name
count
}
}
}
The devices block helps narrow down the universe. You can put in a higher number in the pagination filter to expand, and of course add more filters. With a smaller universe, the q block is efficient and likely to hit the data you need. You can play with pagination on the devices query block to increase the probability of hitting the nodes you need.
Please give this a try and let us know.