У меня есть две таблицы, которые выглядят так (это пример того, что у меня есть на самом деле).
Таблица 1:
Yr, Value
1990, 1
1990, 2
1991, 2
1992, 3
Таблица 2:
Dte, Value2, ID
1/1/1990, 10, 1
1/2/1990, 11, 1
1/3/1990, 12, 2
1/1/1991, 20, 1
1/2/1991, 21, 2
Я хотел бы сначала объединить две таблицы, используя левое соединение, затем отбросить некоторые значения из объединенного набора, а затем сгруппировать по ID
. Код, который я написал, выглядит примерно так:
select avg(Value2) v2
from table2
left join table1 on (year(dte)=yr)
where Value>1
group by ID;
Сначала выполняется соединение, а затем условие фильтра в операторе where
отбрасывает строки из объединенной таблицы или сначала выполняется условие where, а затем соединение? Приведенный выше пример только для иллюстрации, и это более общий вопрос о том, как SQL выполняет операцию.