Grazie mille!
E' stato un luuuuungo parto, ma alla fine sono riuscita ad adattare alla mia query facendola funzionare!

Ovviamente qui ho semplificato la situazione, quello che ora non riesco a fare è che ho bisogno di dati presenti solo nella tabella ticket, che ovviamente se metto nell'ultima select va in errore in quanto dopo non funziona più la union. Come posso fare?

codice:
SELECT  idticket, dataagg, (SELECT assegnatoruolo FROM ticket_agg t2 WHERE t1.idticket = t2.idticket AND t1.dataagg = t2.dataagg) assegnatoruolo, (SELECT assegnatopers FROM ticket_agg t2 WHERE t1.idticket = t2.idticket AND t1.dataagg = t2.dataagg) assegnatopers
FROM (
  SELECT
    idticket, MAX(dataagg) AS dataagg
  FROM ticket_agg
  GROUP BY idticket
) t1
UNION ALL
SELECT
  idticket, dataapertura AS dataagg, assegnatoruolo, assegnatopers
FROM ticket t1
WHERE chiuso='no' and idticket NOT IN ( SELECT idticket FROM ticket_agg t2 WHERE t1.idticket = t2.idticket ) 
ORDER BY idticket
Il codice che ho postato è il tuo, a cui ho aggiunto la visualizzazione di assegnato pers e la clausola WHERE chiuso='no' che però non funziona.