Browse Source

Practice SQL 2

master
Nathan Bergey 2 years ago
parent
commit
6e759871cf
  1. 20
      docs/practices.md
  2. 7
      test/test_example.py

20
docs/practices.md

@ -11,10 +11,30 @@ SQL practices
- Count the number of subordinate 'ENTERPRISE\_CUSTOMER' organizations for each organization. - 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 # Practice 2
- Calculate the center of each `japan_segment`. - 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 # Practice 3
- Select `japan_segments` within the bounds represented as the following GeoJSON. - Select `japan_segments` within the bounds represented as the following GeoJSON.

7
test/test_example.py

@ -95,7 +95,14 @@ class TestExample(DbTest):
os.path.join(PATH_TO_SQL_DIR, "japan_segments.sql") os.path.join(PATH_TO_SQL_DIR, "japan_segments.sql")
) )
# PostGIS is very useful!
sql = """ 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: with conn.cursor(cursor_factory=RealDictCursor) as cur:
cur.execute(sql) cur.execute(sql)

Loading…
Cancel
Save