Skip to content

Commit 575f66f

Browse files
committed
workaround? 2
1 parent a952667 commit 575f66f

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/server/endpoints/covid_hosp_state_timeseries.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -152,20 +152,20 @@ def handle():
152152
q.where_integers("date", dates)
153153
q.where_strings("state", states)
154154

155-
merge_tables = "(SELECT *, 'D' as record_type FROM `covid_hosp_state_daily` UNION ALL SELECT *, 'T' as record_type FROM `covid_hosp_state_timeseries`)"
155+
merge_tables = "(SELECT *, 'D' as record_type FROM `covid_hosp_state_daily` UNION ALL SELECT *, 'T' as record_type FROM `covid_hosp_state_timeseries`) c"
156156
if issues is not None:
157157
q.where_integers("issue", issues)
158158
# final query using specific issues
159-
query = f"WITH m as {merge_tables}, c as (SELECT {q.fields_clause}, ROW_NUMBER() OVER (PARTITION BY date, state, issue ORDER BY record_type) `row` FROM m WHERE {q.conditions_clause.replace('c.', 'm.')}) SELECT {q.fields_clause} FROM {q.alias} WHERE `row` = 1 ORDER BY {q.order_clause}"
159+
query = f"WITH c as (SELECT {q.fields_clause}, ROW_NUMBER() OVER (PARTITION BY date, state, issue ORDER BY record_type) `row` FROM {merge_tables} WHERE {q.conditions_clause}) SELECT {q.fields_clause} FROM {q.alias} WHERE `row` = 1 ORDER BY {q.order_clause}"
160160
elif as_of is not None:
161161
sub_condition_asof = "(issue <= :as_of)"
162162
q.params["as_of"] = as_of
163-
query = f"WITH m as {merge_tables}, c as (SELECT {q.fields_clause}, ROW_NUMBER() OVER (PARTITION BY date, state ORDER BY issue DESC, record_type) `row` FROM m WHERE {q.conditions_clause.replace('c.', 'm.')} AND {sub_condition_asof}) SELECT {q.fields_clause} FROM {q.alias} WHERE `row` = 1 ORDER BY {q.order_clause}"
163+
query = f"WITH c as (SELECT {q.fields_clause}, ROW_NUMBER() OVER (PARTITION BY date, state ORDER BY issue DESC, record_type) `row` FROM {merge_tables} WHERE {q.conditions_clause} AND {sub_condition_asof}) SELECT {q.fields_clause} FROM {q.alias} WHERE `row` = 1 ORDER BY {q.order_clause}"
164164
else:
165165
# final query using most recent issues
166-
subquery = f"(SELECT max(`issue`) `max_issue`, `date`, `state` FROM m WHERE {q.conditions_clause.replace('c.', 'm.')} GROUP BY `date`, `state`) x"
166+
subquery = f"(SELECT max(`issue`) `max_issue`, `date`, `state` FROM {merge_tables} WHERE {q.conditions_clause} GROUP BY `date`, `state`) x"
167167
condition = f"x.`max_issue` = {q.alias}.`issue` AND x.`date` = {q.alias}.`date` AND x.`state` = {q.alias}.`state`"
168-
query = f"WITH m as {merge_tables}, c as (SELECT {q.fields_clause}, ROW_NUMBER() OVER (PARTITION BY date, state, issue ORDER BY record_type) `row` FROM m JOIN {subquery} ON {condition}) select {q.fields_clause} FROM {q.alias} WHERE `row` = 1 ORDER BY {q.order_clause}"
168+
query = f"WITH c as (SELECT {q.fields_clause}, ROW_NUMBER() OVER (PARTITION BY date, state, issue ORDER BY record_type) `row` FROM {merge_tables} JOIN {subquery} ON {condition}) select {q.fields_clause} FROM {q.alias} WHERE `row` = 1 ORDER BY {q.order_clause}"
169169

170170
# send query
171171
return execute_query(query, q.params, fields_string, fields_int, fields_float)

0 commit comments

Comments
 (0)