Ho provato a farla e mi esce così, non mi dà errore ma non sono neanche sicura che esca corretta:
codice:SELECT annuncio.id_a, r1.comune, im1.tipo FROM annuncio JOIN immobile im1 ON (annuncio.id_i = im1.id_i) JOIN recapito r1 ON (im1.id_i = r1.id_i) WHERE annuncio.prezzo IS NOT NULL AND (annuncio.prezzo/im1.mq) < ALL (SELECT (AVG(annuncio.prezzo)/im2.mq)*20/100 FROM annuncio JOIN immobile im2 ON (annuncio.id_i = im2.id_i) JOIN recapito r2 ON (im2.id_i = r2.id_i) WHERE annuncio.prezzo IS NOT NULL AND annuncio.attivo = TRUE GROUP BY im2.mq) GROUP BY r1.comune, im1.tipo, annuncio.id_a ORDER BY annuncio.id_a

