2 回答

TA貢獻1963條經驗 獲得超6個贊
您應該始終使用explicit joinfor 最佳實踐,而不是使用implicit joinon wherecondition。
從表的給定架構中,您可以嘗試以下操作
SELECT
C.id,
COUNT (L.linea_construccion)
FROM Linea L
join Predio P
on L.comuna = P.comuna
join Comunas C
on L.comuna = C.comuna
where L.calidad_construccion = 1
AND P.avaluo_exento > C.avaluo_promedio
GROUP BY
C.id

TA貢獻1799條經驗 獲得超9個贊
首先,使用正確、明確、標準、可讀的JOIN語法重寫查詢:
SELECT C.id, COUNT(*)
FROM Linea L JOIN
Comunas C
ON L.comuna = C.id JOIN
Predio P
ON C.id = P.comuna AND P.avaluo_exento > C.avaluo_promedio
WHERE L.calidad_construccion = 1
GROUP BY C.id ;
從以下索引開始:
Linea(calidad_construccion, comuna)
Comunas(id, avaluo_promedio)
-- 如果“id”是主鍵,則可能不需要Predio(comuna, avaluo_exento)
根據您擁有的“communas”數量和返回的數量,您可以通過消除外部GROUP BY
.
添加回答
舉報