你们知道如何使这个选择更快或更有效吗?问题是,这个选择在sqlite上处理要花费数小时以上的时间。我把它和 sqlite3
因此命令有一些限制。
SELECT C.id, COUNT (L.linea_construccion)
FROM Linea L, Predio P, Comunas C
WHERE L.calidad_construccion = 1 AND C.id = P.comuna
AND L.comuna = C.id AND P.avaluo_exento > C.avaluo_promedio
GROUP BY C.id
数据库中有3个表 Linea
有9mm的行,table Predio
有7mm和table Comunas
大约有250个。
表格格式为: Predio
. ( id INT
, comuna INT
, avaluo_exento INT
) Linea
. ( id INT
, comuna INT
, calidad_construccion INT
, linea_construccion INT
) Comuna
. ( id INT
, avaluo_promedio INT
)
2条答案
按热度按时间42fyovps1#
你应该经常使用
explicit join
为了获得最佳实践implicit join
在where
条件。从表的给定模式中,可以尝试以下操作
wr98u20j2#
首先,使用适当的、显式的、标准的、可读的
JOIN
语法:从以下索引开始:
Linea(calidad_construccion, comuna)
Comunas(id, avaluo_promedio)
--如果“id”是主键,则可能不需要Predio(comuna, avaluo_exento)
根据您拥有的“commonas”数量和返回的数量,您可以通过消除外部GROUP BY
.