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.