La consulta GROUP BY válida no funciona cuando se combina con INSERT INTO en Oracle

Estoy tratando de escribir un INSERT INTO que hace un trabajo DISTINCT / GROUP BY. La consulta se ejecuta perfectamente como una instrucción de selección, pero no funcionará si se inserta en un INSERT INTO.

INSERT INTO MasterRecords
  (BatchRecordRecordID, SourceID, BatchID)
SELECT RecordID, SourceID, BatchID
FROM (
    SELECT RecordID, BatchID, 101 AS SourceID
    FROM BatchRecords
    WHERE BatchID = 150
    GROUP BY RecordID, BatchID
) BR

Esto me gana:

Error de SQL: ORA-00979: no es una expresión GROUP BY

Pero si elimino solo el código INSERT INTO, funciona perfectamente bien:

SELECT RecordID, SourceID, BatchID
FROM (
    SELECT RecordID, BatchID, 101 AS SourceID
    FROM BatchRecords
    WHERE BatchID = 150
    GROUP BY RecordID, BatchID
) BR

Resultados:

3   101 150
5   101 150
6   101 150
2   101 150
4   101 150
8   101 150
7   101 150
1   101 150

Mi suposición es que GROUP BY no está permitido dentro de INSERT INTO en sentencias select pero no puedo encontrar casi ninguna documentación que confirme esto.

Respuestas a la pregunta(3)

Su respuesta a la pregunta