From 7afb795ef763e72700e8c81afdd9c306519a7856 Mon Sep 17 00:00:00 2001 From: Danijel Schorlemmer Date: Thu, 27 Jan 2022 15:52:29 +0100 Subject: [PATCH] Simplified the SQL query and optimized for processing speed --- exposurejapan/database.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/exposurejapan/database.py b/exposurejapan/database.py index 12e4fbf..f153948 100644 --- a/exposurejapan/database.py +++ b/exposurejapan/database.py @@ -1065,16 +1065,13 @@ class JapanDatabase(SpatialiteDatabase): # Calculate the population_density with the boundary area from Districts table # and update the PopulationDistribution table sql_statement = ( - "WITH updates(ID, population_density) " - "AS (SELECT PopulationDistribution.district_id, PopulationDistribution.total/ " - "District.area_size " - "FROM PopulationDistribution " - "INNER JOIN District ON District.id = PopulationDistribution.district_id) " - ) - sql_statement += ( "UPDATE PopulationDistribution " - "SET population_density = (SELECT population_density FROM updates " - "WHERE PopulationDistribution.district_id = ID)" + "SET population_density = Q.density FROM " + "(SELECT PopulationDistribution.total/District.area_size AS density, " + "PopulationDistribution.district_id AS id " + "FROM PopulationDistribution INNER JOIN District " + "ON District.id = PopulationDistribution.district_id) AS Q " + "WHERE PopulationDistribution.district_id = Q.id" ) logger.debug(sql_statement) self.cursor.execute(sql_statement) -- GitLab