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)