Em um SELECT DISTINCT com uma cláusula ORDER BY, se você especificar um valor no ORDER BY que não existe na cláusula SELECT, o Oracle retornará a exceção ORA-01791: not a SELECTed expression.

Veja esse exemplo:

SELECT DISTINCT item.name
  FROM item
 ORDER BY item.group_id

A coluna item.id não está na cláusula SELECT, então o Oracle causará um ORA-01791. A versão corrigida pode ser:

SELECT DISTINCT item.name, item.group_id
  FROM item
 ORDER BY item.group_id

Se uma coluna na cláusula SELECT tem um alias, você também pode usar o alias na cláusula ORDER BY:

-- consultas válidas
SELECT DISTINCT item.name AS full_name
  FROM item
 ORDER BY item.name;
 
SELECT DISTINCT item.name AS full_name
  FROM item
 ORDER BY full_name;

Esteja ciente de que até a versão 11.2.0.4, o Oracle aceitava alguns valores incorretos em ORDER BY, como:

SELECT DISTINCT UPPER(item.name) AS full_name, item.group_id
  FROM item
 ORDER BY item.name -- deveria ser "UPPER(item.name)" ou "full_name" 

Você deve corrigir as consultas para evitar problemas de compatibilidade com versões mais novas do Oracle.