Я пытаюсь написать INSERT INTO, который выполняет некоторую работу DISTINCT/GROUP BY. Запрос выполняется отлично, как оператор select, но не будет работать, если он завернут в 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
Это меня заводит:
Ошибка SQL: ORA-00979: не выражение GROUP BY
Но если я удалю только код INSERT INTO, он работает отлично:
SELECT RecordID, SourceID, BatchID
FROM (
SELECT RecordID, BatchID, 101 AS SourceID
FROM BatchRecords
WHERE BatchID = 150
GROUP BY RecordID, BatchID
) BR
Результаты:
3 101 150
5 101 150
6 101 150
2 101 150
4 101 150
8 101 150
7 101 150
1 101 150
Мое предположение заключается в том, что GROUP BY не допускаются внутри операторов INSERT INTO, но я не могу найти почти никакой документации, подтверждающей это.