From 6e759871cffe471fe987a6e95b48aef8a275af81 Mon Sep 17 00:00:00 2001 From: Nathan Bergey Date: Tue, 13 Sep 2022 22:20:28 -0400 Subject: [PATCH] Practice SQL 2 --- docs/practices.md | 20 ++++++++++++++++++++ test/test_example.py | 7 +++++++ 2 files changed, 27 insertions(+) diff --git a/docs/practices.md b/docs/practices.md index f9aba97..e59cbc2 100644 --- a/docs/practices.md +++ b/docs/practices.md @@ -11,10 +11,30 @@ SQL practices - Count the number of subordinate 'ENTERPRISE\_CUSTOMER' organizations for each organization. +```sql +SELECT + COUNT(customers.*) AS "subordinates_count", + organizations.id AS "id" +FROM organizations +LEFT OUTER JOIN enterprise_sales_enterprise_customers customers ON customers.sales_organization_id = organizations.id +GROUP BY organizations.id +ORDER BY organizations.id ASC +; +``` + # Practice 2 - Calculate the center of each `japan_segment`. +```sql +SELECT + id, + ST_X(ST_Centroid(bounds)) AS "longitude", + ST_Y(ST_Centroid(bounds)) AS "latitude" +FROM japan_segments +; +``` + # Practice 3 - Select `japan_segments` within the bounds represented as the following GeoJSON. diff --git a/test/test_example.py b/test/test_example.py index 3904377..8a74cef 100644 --- a/test/test_example.py +++ b/test/test_example.py @@ -95,7 +95,14 @@ class TestExample(DbTest): os.path.join(PATH_TO_SQL_DIR, "japan_segments.sql") ) + # PostGIS is very useful! sql = """ + SELECT + id, + ST_X(ST_Centroid(bounds)) AS "longitude", + ST_Y(ST_Centroid(bounds)) AS "latitude" + FROM japan_segments + ; """ with conn.cursor(cursor_factory=RealDictCursor) as cur: cur.execute(sql)