Valid GROUP BY-Abfrage funktioniert nicht in Kombination mit INSERT INTO unter Oracle

Ich versuche ein INSERT INTO zu schreiben, das eine DISTINCT / GROUP BY-Arbeit leistet. Die Abfrage läuft als select-Anweisung einwandfrei, funktioniert aber nicht, wenn sie in INSERT INTO eingebunden ist.

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

Das bringt mir ein:

SQL-Fehler: ORA-00979: kein GROUP BY-Ausdruck

Aber wenn ich nur den INSERT INTO-Code entferne, läuft er einwandfrei:

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

Ergebnisse

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

Meine Annahme ist, dass GROUP BYs in INSERT INTO select-Anweisungen nicht zulässig sind, aber ich kann fast keine Dokumentation finden, die dies bestätigt.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage