I have a polygon layer that contains some polygons inside of polygons. I need to be able to identify the polygons inside of polygons and discard the polygons inside of the polygons. What is the most efficient way of doing that?
If the polygons need to be completely within larger polygons you can use ST_Contains, if they simply need to be touching at some point you can use ST_Intersects.
If they're completely within your union is just going to return the outer boundary of the larger polygon. Do you need to doughnut out the smaller polygons from the larger ones?