Bom, pelo que vc mostra eu ** imagino** que vc quer localizar, para cada Cliente, primeiro o registro com TPO=6 e depois listar o registro do mesmo cliente com TPO=5, depois pro mesmo cliente com TPO=4, depois com TPO=3, assim por diante… Certo ?
Sendo isso pra mim a resposta é ANALYTICS : ele é um grupo de funções built-in no RDBMS Oracle que permite que vc Agrupe e ORDENE teus registros por uma condição e depois (via LAG/LEAD) ache os valores anteriores ou posteriores dentro do grupo… Dá um look em http://www.adp-gmbh.ch/ora/sql/analytical/lag.html (neste caso o exemplo com LAG mostra o valor anterior da coluna M, de acordo com o que eu entendi vc quer agrupar/ordenar por CODCLI e depois por TPO em ordem reversa, começando pelo TPO=6 portanto) e também estide as refs/exemplos em https://oracle-base.com/articles/misc/lag-lead-analytic-functions ….
SE não conseguir chegar no que precisa, manda o rascunho/esqueleto da sua tentativa, ** JUNTO ** com um CREATE TABLE e com uns INSERTs que a gente tenta reproduzir e critica/indica o teu erro….
[]s
Chiappa