feat: register balance_long / balance_annotated behind a column gate (#25)
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
-- Cash and security holdings, classified by crosswalk MEMBERSHIP on
|
||||
-- category_type (see 21-revenue_long.sql for why first-letter prefixes cannot
|
||||
-- do this job -- the X and Y families each span revenue, expenditure AND
|
||||
-- balance).
|
||||
--
|
||||
-- These rows are STOCKS: a balance at a point in time, not a flow over a
|
||||
-- fiscal year. Summing a stock with a flow is meaningless, which is why they
|
||||
-- live behind a third view rather than as a subtype of either money view, and
|
||||
-- why neither spending_long nor revenue_long can reach them.
|
||||
--
|
||||
-- `NOT is_aggregate` mirrors spending_long / revenue_long. The wide-era
|
||||
-- aggregate-only holdings codes (X40/X41) are deliberately outside this view;
|
||||
-- they are reachable only through the recipe path, which bypasses this filter
|
||||
-- by design (cog_pipeline/docs/phase_r_harmonization_review.md § 0.2).
|
||||
CREATE OR REPLACE VIEW balance_long AS
|
||||
SELECT *
|
||||
FROM long
|
||||
WHERE item_code IN (
|
||||
SELECT item_code FROM summary_categories
|
||||
WHERE category_type = 'balance'
|
||||
)
|
||||
AND NOT is_aggregate;
|
||||
@@ -0,0 +1,16 @@
|
||||
CREATE OR REPLACE VIEW balance_annotated AS
|
||||
SELECT
|
||||
s.*,
|
||||
x.gov_name AS xwalk_gov_name,
|
||||
x.govs_type,
|
||||
x.type_label,
|
||||
x.fips_state AS xwalk_fips_state,
|
||||
x.fips_county AS xwalk_fips_county,
|
||||
x.fips_place,
|
||||
x.population_acs,
|
||||
c.category,
|
||||
c.category_type,
|
||||
c.balance_subtype
|
||||
FROM balance_long s
|
||||
LEFT JOIN canonical_fips_xwalk x USING (canonical_govid)
|
||||
LEFT JOIN summary_categories c USING (item_code);
|
||||
Reference in New Issue
Block a user