Мне нужно сделать среднюю медиану с Oracle. У меня есть это:Oracle SQL Средний запрос
SELECT V.Id_Aeropuerto_Destino AS Id_Aeropuerto, C.Nombre AS Ciudad_Destino, A.nombre AS Aeropuerto,
(SELECT SUM((TO_NUMBER(V.Retraso_Salida,'99999999D99','nls_numeric_characters=''.,''')) +
(TO_NUMBER(V.Retraso_Llegada,'99999999D99','nls_numeric_characters=''.,''')))
FROM Vuelo V
WHERE V.Id_Aeropuerto_Destino=Id_Aeropuerto) Retraso_Total
FROM Ciudad C, Aeropuerto A, Vuelo V
WHERE V.Id_Aeropuerto_Destino=A.Id_Aeropuerto AND A.Ciudad = C.Id_Ciudad;
Это вычисляет общую задержку ряда рейсов («Retraso_Total»). Теперь мне нужно сделать AVG от "Retraso_Total", чтобы получить ("Retraso_Total"/количество рейсов) -> Retraso_Medio, что-то вроде этого:
SELECT V.Id_Aeropuerto_Destino AS Id_Aeropuerto, C.Nombre AS Ciudad_Destino, A.nombre AS Aeropuerto,
(SELECT AVG SUBQUERY) Retraso_Medio,
(SELECT SUM((TO_NUMBER(V.Retraso_Salida,'99999999D99','nls_numeric_characters=''.,''')) +
(TO_NUMBER(V.Retraso_Llegada,'99999999D99','nls_numeric_characters=''.,''')))
FROM Vuelo V
WHERE V.Id_Aeropuerto_Destino=Id_Aeropuerto) Retraso_Total
FROM Ciudad C, Aeropuerto A, Vuelo V
WHERE V.Id_Aeropuerto_Destino=A.Id_Aeropuerto AND A.Ciudad = C.Id_Ciudad;
Я пытаюсь с этим:
SELECT AVG(SUM((TO_NUMBER(V.Retraso_Salida,'99999999D99','nls_numeric_characters=''.,''')) +
(TO_NUMBER(V.Retraso_Llegada,'99999999D99','nls_numeric_characters=''.,'''))))
FROM Vuelo V
WHERE V.Id_Aeropuerto_Destino=Id_Aeropuerto
GROUP BY V.Id_Aeropuerto_Destino) Retraso_Medio
Но этот подзапрос не работает.
Как я могу это сделать (все в одном запросе)?
Спасибо!
Таблица Vuelo (Flight) имеет (id_plane, id_origin_airport, id_destiny_airport, id_company, отправление час, прибытие час, задержка вылета, задержки прибытия, дата, отмененный, пассажиры, Миллес:
CREATE TABLE Vuelo(
Id_Avion number(4),
Id_Aeropuerto_Origen number(5),
Id_Aeropuerto_Destino number(5),
Id_Aerolinea varchar(2),
Hora_Salida number(4),
Hora_Llegada number(4),
Retraso_Salida varchar(5),
Retraso_Llegada varchar(5),
Fecha varchar(10),
Cancelado varchar(3) NOT NULL,
Pasajeros varchar(10) NOT NULL,
Distancia varchar(10) NOT NULL,
CONSTRAINT pk_Vuelo PRIMARY KEY(Id_Avion, Id_Aeropuerto_Origen, Fecha, Hora_salida),
CONSTRAINT fk_Avion FOREIGN KEY(Id_Avion) REFERENCES Avion(Id_Avion),
CONSTRAINT fk_Aeropuerto_Origen FOREIGN KEY(Id_Aeropuerto_Origen) REFERENCES Aeropuerto(Id_Aeropuerto),
CONSTRAINT fk_Aeropuerto_Destino FOREIGN KEY(Id_Aeropuerto_Destino) REFERENCES Aeropuerto(Id_Aeropuerto),
CONSTRAINT fk_Aerolinea FOREIGN KEY(Id_Aerolinea) REFERENCES Aerolinea(Id_Aerolinea),
CONSTRAINT fk_Fecha FOREIGN KEY(Fecha) REFERENCES Fecha(Id_Fecha)
);
Таблица Ciudad (Город) имеет id_city, название, широта, долгота, население, часовой пояс:
CREATE TABLE Ciudad(
Id_Ciudad number(7),
Nombre varchar(80) NOT NULL,
Latitud varchar(15) NOT NULL,
Longitud varchar(15) NOT NULL,
Habitantes number(10) NOT NULL,
Timezone varchar(80) NOT NULL,
CONSTRAINT pk_Ciudad PRIMARY KEY(Id_Ciudad)
);
Таблица Aeropuerto (аэропорт) имеет id_airport, имя, код, id_city, состояние, state_code:
CREATE TABLE Aeropuerto(
Id_Aeropuerto number(5),
Nombre varchar(80) NOT NULL,
Codigo varchar(4) NOT NULL,
Ciudad number(5) NOT NULL,
Estado varchar(80) NOT NULL,
Codigo_Estado varchar(4) NOT NULL,
CONSTRAINT pk_Aeropuerto PRIMARY KEY(Id_Aeropuerto),
CONSTRAINT fk_Ciudad FOREIGN KEY(Ciudad) REFERENCES Ciudad(Id_Ciudad)
);
Сумма совокупности без агрегатов .. что вы пытаетесь сделать? Объясните это немного. – GurV
Мне нужно рассчитать общую задержку ряда рейсов («Retraso Total») и среднее значение этого («Retraso Total»/количество рейсов). Извините за мой английский – Patatas91
Пожалуйста, разместите некоторые данные о выборке и ожидаемый результат и правила расчетов – GurV