У меня есть следующая схема:
CREATE TABLE aTable
("id" int, "idOfOperation" varchar(10), "uniqueName" varchar(6), "randomNumber" int)
;
INSERT INTO aTable
("id", "idOfOperation", "uniqueName", "randomNumber")
VALUES
(1, 'operation1', 'model1', 3),
(2, 'operation1', 'model2', 5),
(3, 'operation2', 'model2', 43),
(4, 'operation2', 'model3', 57),
(5, 'operation2', 'model4', 65)
;
Ограничения:
- (idOfOperation, uniqueName) уникальны.
Таблица содержит результаты различных операций (операция1, операция2) и какая операция имеет несколько подмоделей (модель1, модель2, модель3, модель4) с некоторыми уникальными значениями (randomNumber).
Что мне нужно для достижения:
- Создайте запрос, который найдет сумму набора двух операций (операция1, операция2) со следующим выводом:
'model2', 5.18, 'model2', 43.2
Я уже пробовал следующее внутреннее соединение:
select r1.*, r2.*
from aTable r1
inner join aTable r2
on (r1."uniqueName" = r2."uniqueName" and r1."idOfOperation" != r2."idOfOperation")
where (r1."idOfOperation" = 'operation1' or r1."idOfOperation" = 'operation2')
Но результат содержит две строки вместо одной (с замененными значениями):
id idOfOperation uniqueName randomNumber id idOfOperation uniqueName randomNumber
3 operation2 model2 43 2 operation1 model2 5
2 operation1 model2 5 3 operation2 model2 43
Ожидаемый результат:
operation2, operation1, model2, 43, 5
Я был бы очень признателен за любую помощь.