Está en la página 1de 2

--Consulta SQL para encontrar la ID de sede con mayor costo

SELECT Sede_ID
FROM (
SELECT Sede_ID, Servicios_ID, costo,
DENSE_RANK() over (ORDER BY costo DESC) RNK
FROM (SELECT distinct Sede_ID,
COUNT(1) over(partition by Sede_ID) costo
FROM SEDE_SERVICIOS S1
)
)
WHERE RNK = 1;

-- Consulta SQL para seleccionar la sede servivio que obtiene un costo mayor
que el costo promedio de la sedeID en el que se esta brindando el servicio

SELECT * FROM SEDE_SERVICIOS S1,


(
SELECT Sede_ID, AVG(costo) costo
FROM SEDE_SERVICIOS GROUP BY Sede_ID
) S2
WHERE S1.Sede_ID = S2.Sede_ID
AND S1.costo > S2.costo;
------OR
SELECT Sede_ID, Servicios_ID, costo
FROM SEDE_SERVICIOS s1
WHERE costo > (
SELECT avg(costo)
FROM SEDE_SERVICIOS s2
WHERE s2.Sede_ID = s1.Sede_ID
);
------OR
SELECT s.*
FROM (
SELECT S1.*,
avg(costo) over (partition by Sede_ID) as avgcosto
FROM SEDE_SERVICIOS S1
) s
WHERE s.costo > s.avgcosto;

--Consulta SQL para enumerar a la ID de la sede y al costo de los servicios


de la sede

SELECT S.*
FROM (SELECT Sede_ID,
Servicios_ID,
(
SELECT Servicios_ID
FROM SEDE_SERVICIOS S1
WHERE S1.Sede_ID= S2.costo
) REPORTING_NAME
FROM SEDE_SERVICIOS S2
) S
WHERE S.REPORTING_NAME IS NOT NULL;
---OR
WITH S2 AS
(SELECT Sede_ID, Servicios_ID
FROM SEDE_SERVICIOS
WHERE Sede_ID IN (SELECT DISTINCT costo FROM SEDE_SERVICIOS))
SELECT S1.Sede_ID, S1.Servicios_ID, S2.Servicios_ID
FROM SEDE_SERVICIOS S1, S2
WHERE S1.costo = S2.Sede_ID;

También podría gustarte