Предположим, у нас есть 3 таблицы, первая таблица главная таблица ниже деталисравнение двух агрегатной функции без группы по п
MasterTable (Id, col1, col2)
ChildTable1 (Id, MasterId, количество1)
ChildTable2 (Id, MasterId, количество2)
я должен найти идентификатор из mastertable где sum(chiletable1.Amount1)
должен быть больше, чем sum(chiletable2.Amount2)
я написал запрос с использованием GroupBy и имеющий пункт, который ГВСИ правильные данные,
есть ли другой способ, чтобы написать тот же запрос без GroupBy, имея в виду вопрос производительности, если есть billons записей в таблице. следующий мой запрос
select Mastertable.Id
from Mastertable,Childtable1,ChildTable2
where Mastertable.Id=Childtable1.MasterId
and ChildTable1.MasterId=ChildTable2.MasterId
group by MasterTable.Id
having SUM(Childtable1.Amount1) > SUM(Childtable2.Amount2)
Я сильно подозреваю, что 'group by' - это самый быстрый способ выполнить запрос. –
Что делать, если конкретный MasterId существует в одном из двух «дочерних таблиц», но не для обоих? – geomagas