A consulta GROUP BY válida não funciona quando combinada com INSERT INTO no Oracle
Estou tentando escrever um INSERT INTO que faz algum trabalho DISTINCT / GROUP BY. A consulta é executada perfeitamente como uma instrução select, mas não funcionará se for inserida em um 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
Isso me ganha:
Erro SQL: ORA-00979: não é uma expressão GROUP BY
Mas se eu remover apenas o código INSERT INTO, ele funcionará perfeitamente:
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
Minha suposição é que GROUP BY não é permitido dentro das instruções INSERT INTO select, mas não encontro quase nenhuma documentação confirmando isso.