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.