Сначала выводят среднее место во всех записях ...
(Select avg(area) mavg from space)
Это возвращает единственное значение, которое мы можем переправиться присоединиться ко всем космическим записям, а затем просто проверить для области> средних.
Select *
from Space
cross join (Select avg(area) mavg from space) Co
where area > Co.mavg
Так как мы знаем результат из производной таблицы зрения/инлайн будет только 1 значение каждый раз, перекрестное соединение не увеличивает количество строк оценки; и rdbms должен оценивать только один раз.
Однако это предполагает, что вы хотите усреднить по всем записям, а не только через компанию. Если в компании ... потом что-то вроде ...
Select S.*
from Space S
LEFT join (Select address, avg(area) mavg from space Group by address) Co
on S.address= Co.address
where S.area > Co.mavg
Это определяет среднее по компании присоединяется обратно в космос на этой компании, а затем сравнивает каждое пространство рекорд для компании в среднем компании.
Поскольку мы не знаем, как вы определяете компанию с точки зрения данных, я просто принял поле «адрес».
другой подход ...
Select S.*
from space S
where S.area > (Select avg(area) from space)
Однако это предполагает, что в среднем по всем компаниям
или
Select S.*
from space
where s.avg > (Select avg(area) from space S2 where S.Company = S2.company)
Если это не сделать это, я должен был бы увидеть DDL табличного пространства (столбцы структуры, типы данных PK, FK и т. д.) и некоторые примеры данных.
, если адрес не является одинаковым для каждой области компании .... есть должны быть какие-то другие критерии относятся компании ко всем другим записям компании (название, возможно, или последовательный ключ?)
Лично я считаю, использование коррелированного подзапроса в этом случае медленное, поскольку оно должно вычислять среднее значение для каждой записи в пространстве. Перекрестное присоединение к ИМО будет более эффективным.
Используйте полные имена столбцов, чтобы избежать двусмысленности: 'WHERE outer.area' и' AVG (inner.area) ' –
Так что есть одно среднее или среднее значение для одной компании .... но мы не знаем, как определить компанию? – xQbert