概要
このデータセットは、全統計調査の統計量テーブル【CITY_ESTATDB_RESEARCH_STATS】
から「工業統計調査(2020年版) 確報」項目データを抜き出し、市区町村統計量マスタ【CITY_ESTATDB_STATS_MASTER】及び市区町村調査マスタ【CITY_ESTATDB_RESEARCH_MASTER】と市区町村マスタテーブル【CITY_MASTER】を組み合わせたビューです。
SQL
【E_CI_CM20】
- create or replace secure view PODB_CITY.BETA.E_CI_CM20(
- ESTATDB_STATS_FULL_ID COMMENT ‘ESTATDB_統計量コード|truestarが付与|『テーブルID』『表01コード』『全カテゴリコード』を結合して独自作成’,
- CITY_CODE COMMENT ‘市区町村コード | 出典:e-Stat | 元データのカラム名はcat03_code’,
- STATS_YEAR COMMENT ‘調査年度| 出典:e-Stat| 元データのカラム名は時間軸(年次)’,
- STATS_VALUE COMMENT ‘統計値 | 出典:e-Stat | 元データのカラム名はvalue’,
- STATS_UNIT COMMENT ‘統計単位 | 出典:e-Stat | 元データのカラム名はunit’,
- ESTATDB_STATS_FULL_NAME COMMENT ‘ESTATDB_統計量名|truestarが付与|『表01名』『全カテゴリ名』を結合して独自作成’,
- ESTATDB_RESEARCH_TABLE_ID COMMENT ‘ESTATDB_調査テーブルID|truestarが付与|『調査ID』『テーブルID』を結合して独自作成(関数)’,
- STATS_CAT01_CODE COMMENT ‘統計量_属性_カテゴリ01コード| 出典:e-Stat|元データのカラム名はcat01_code’,
- STATS_CAT01_NAME COMMENT ‘統計量_属性_カテゴリ01名| 出典:e-Stat’,
- STATS_CAT02_CODE COMMENT ‘統計量_属性_カテゴリ02コード| 出典:e-Stat|元データのカラム名はcat02_code’,
- STATS_CAT02_NAME COMMENT ‘統計量_属性_カテゴリ02名| 出典:e-Stat’,
- ESTATDB_TABLE_NAME COMMENT ‘ESTATDB_テーブル名|『表番号』『表題』『統計表名』を結合して独自作成(関数)’,
- CITY_NAME COMMENT ‘市区町村名|出典:e-Stat|元データのカラム名は市区町村(都道府県含む)2019【市区町村編限定版】’
- ) COMMENT=’工業統計調査 | 2020年’
- as select aa.*, research_master.ESTATDB_TABLE_NAME,city_master.CITY_NAME
- from
- (
- //条件を絞ったresearch_statsからすべて、stats_masterから使うデータを選択をする
- select research_stats.*,
- stats_master.//ESTATDB_STATS_FULL_ID,
- ESTATDB_STATS_FULL_NAME,
- ESTATDB_RESEARCH_TABLE_ID,
- STATS_CAT01_CODE,
- STATS_CAT01_NAME,
- STATS_CAT02_CODE,
- STATS_CAT02_NAME
- from
- ( //(PODB_RESEARCH_TABLE_ID, 7) = ‘0712020’であるデータをPODB_CITY.BETA.CI_STからすべてを選択し、それをresearch_statsとする。
- select * from PODB_CITY.BETA.CI_ST
- where left(ESTATDB_STATS_FULL_ID, 7) = ‘0712020’
- ) as research_stats
- //research_statsとstats_masterをESTATDB_STATS_FULL_IDでleft join。このときのPODB_CITY.BETA.CI_ST_MSTはstats_masterにとしている。
- //left joinの条件はresearch_stats.ESTATDB_STATS_FULL_ID =stats_master.ESTATDB_STATS_FULL_IDである。
- //ここでのprimary keyはESTATDB_STATS_FULL_IDである。
- //結合のprimary keyはmiroを参考にすること。
- left join
- PODB_CITY.BETA.CI_ST_MST as stats_master
- on research_stats.ESTATDB_STATS_FULL_ID =stats_master.ESTATDB_STATS_FULL_ID
- //research_statsとstats_masterを条件で結合したものをaaとする。aaの部分は任意の名前で良い
- ) as aa
- //aaとresearch_masterをESTATDB_RESEARCH_TABLE_IDでleft joinする。このときPODB_CITY.BETA.CI_TB_MSTをresearch_masterとしている
- //left joinの条件はaa.ESTATDB_RESEARCH_TABLE_ID = research_master.ESTATDB_RESEARCH_TABLE_ID。
- //ここでのprimary keyはESTATDB_RESEARCH_TABLE_IDである。
- //結合のprimary keyはmiroを参考にすること。
- left join PODB_CITY.BETA.CI_TB_MST as research_master
- on aa.ESTATDB_RESEARCH_TABLE_ID = research_master.ESTATDB_RESEARCH_TABLE_ID
- //aa.CITY側のみのデータを必要とする
- //citymaster.CITY_CODEとaa.CITY_CODEをright joinする。
- //PODB_CITY.BETA.CI_MSTをcity_masterとしている。
- inner join PODB_CITY.BETA.CI_MST as city_master
- on city_master.CITY_CODE = aa.CITY_CODE
- //市区町村の統計量のみを確実に表示するために使用
- where NOT CITY_NAME=’null’;
【J_CI_CM20】
- create or replace secure view PODB_CITY.BETA.J_CI_CM20(
- “ESTATDB_統計量コード” COMMENT ‘truestarが付与|『テーブルID』『表01コード』『全カテゴリコード』を結合して独自作成’,
- “市区町村コード” COMMENT ‘出典:e-Stat|元データのカラム名はcat03_code’,
- “調査年度” COMMENT ‘出典:e-Stat| 元データのカラム名は時間軸(年次)’,
- “統計値” COMMENT ‘出典:e-Stat|元データのカラム名はvalue’,
- “統計単位” COMMENT ‘出典:e-Stat|元データのカラム名はunit’,
- “ESTATDB_統計量名” COMMENT ‘truestarが付与|『表01名』『全カテゴリ名』を結合して独自作成’,
- “ESTATDB_調査テーブルID” COMMENT ‘truestarが付与|『調査ID』『テーブルID』を結合して独自作成(関数)’,
- “統計量_属性_カテゴリ01コード” COMMENT ‘出典:e-Stat|元データのカラム名はcat01_code’,
- “統計量_属性_カテゴリ01名” COMMENT ‘出典:e-Stat’,
- “統計量_属性_カテゴリ02コード” COMMENT ‘出典:e-Stat|元データのカラム名はcat02_code’,
- “統計量_属性_カテゴリ02名” COMMENT ‘出典:e-Stat’,
- “ESTATDB_テーブル名” COMMENT ‘truestarが付与|『表番号』『表題』『統計表名』を結合して独自作成(関数)’,
- “市区町村名” COMMENT ‘出典:e-Stat|元データのカラム名は市区町村(都道府県含む)2019【市区町村編限定版】’
- ) COMMENT=’工業統計調査 | 2020年’
- as select aa.*, research_master.ESTATDB_TABLE_NAME,city_master.CITY_NAME
- from
- (
- //条件を絞ったresearch_statsからすべて、stats_masterから使うデータを選択をする
- select research_stats.*,
- stats_master.//ESTATDB_STATS_FULL_ID,
- ESTATDB_STATS_FULL_NAME,
- ESTATDB_RESEARCH_TABLE_ID,
- STATS_CAT01_CODE,
- STATS_CAT01_NAME,
- STATS_CAT02_CODE,
- STATS_CAT02_NAME
- from
- ( //(PODB_RESEARCH_TABLE_ID, 7) = ‘0712020’であるデータをPODB_CITY_DATA.BETA.CI_STからすべてを選択し、それをresearch_statsとする。
- select * from PODB_CITY.BETA.CI_ST
- where left(ESTATDB_STATS_FULL_ID, 7) = ‘0712020’
- ) as research_stats
- //research_statsとstats_masterをESTATDB_STATS_FULL_IDでleft join。このときのPODB_CITY_DATA.DEV.CI_ST_MSTはstats_masterにとしている。
- //left joinの条件はresearch_stats.ESTATDB_STATS_FULL_ID =stats_master.ESTATDB_STATS_FULL_IDである。
- //ここでのprimary keyはESTATDB_STATS_FULL_IDである。
- //結合のprimary keyはmiroを参考にすること。
- left join
- PODB_CITY.BETA.CI_ST_MST as stats_master
- on research_stats.ESTATDB_STATS_FULL_ID =stats_master.ESTATDB_STATS_FULL_ID
- //research_statsとstats_masterを条件で結合したものをaaとする。aaの部分は任意の名前で良い
- ) as aa
- //aaとresearch_masterをESTATDB_RESEARCH_TABLE_IDでleft joinする。このときPODB_CITY_DATA.BETA.CI_TB_MSTをresearch_masterとしている
- //left joinの条件はaa.ESTATDB_RESEARCH_TABLE_ID = research_master.ESTATDB_RESEARCH_TABLE_ID。
- //ここでのprimary keyはESTATDB_RESEARCH_TABLE_IDである。
- //結合のprimary keyはmiroを参考にすること。
- left join PODB_CITY.BETA.CI_TB_MST as research_master
- on aa.ESTATDB_RESEARCH_TABLE_ID = research_master.ESTATDB_RESEARCH_TABLE_ID
- //aa.CITY側のみのデータを必要とする
- //citymaster.CITY_CODEとaa.CITY_CODEをright joinする。
- //PODB_CITY_DATA.BETA.CI_MSTをcity_masterとしている。
- inner join PODB_CITY.BETA.CI_MST as city_master
- on city_master.CITY_CODE = aa.CITY_CODE
- where NOT CITY_NAME=’null’;
サンプルデータ
データフィールド
ESTATDB_STATS_FULL_ID (TAB01なし) |
ESTATDB_統計量コード |
CITY_CODE |
市区町村コード |
STATS_YEAR |
調査年度 |
STATS_VALUE |
統計値 |
STATS_UNIT |
統計単位 |
ESTATDB_STATS_FULL_NAME |
ESTATDB_統計量名 |
ESTATDB_RESEARCH_TABLE_ID |
ESTATDB_調査テーブルID |
STATS_CAT01_CODE |
統計量_属性_カテゴリ01コード |
STATS_CAT01_NAME |
統計量_属性_カテゴリ01名 |
STATS_CAT02_CODE |
統計量_属性_カテゴリ02コード |
STATS_CAT02_NAME |
統計量_属性_カテゴリ02名 |
ESTATDB_TABLE_NAME |
ESTATDB_テーブル名 |
CITY_NAME |
市区町村名 |
注釈:
※【STATS_TAB01_CODE】と【STATS_TAB01_NAME】:なし
特記事項
事象:
ESTATDB_統計量名【ESTATDB_STATS_FULL_NAME】は同一であるが、統計量【STATS_VALUE】などが異なるレコードがあります。
異なる理由:
ESTATDB_テーブル名【ESTATDB_TABLE_NAME】が異なるからです。
詳細:
- 表番号3-3と表番号4-3-1の例です。
ESTATDB_STATS_FULL_ID | ESTATDB_STATS_FULL_NAME | STATS_VALUE | CITY_NAME | ESTATDB_TABLE_NAME |
0112020009|202001|0|0|00|0 | 人口|国籍総数|総数|総数|総数 | 1,973,395 | 札幌市 | 3-3男女,年齢(5歳階級),出生の月,国籍総数か日本人別人口-全国,都道府県,市区町村 |
0112020010|202001|0|0|0|00 | 人口|国籍総数|総数|総数|総数 | 1,726,966 | 札幌市 | 4-3-1男女,年齢(5歳階級),配偶関係,国籍総数か日本人別人口(15歳以上)-全国,都道府県,市区町村 |
※こちらは、他のビューの事例ではありますが、本ビューでも事象は同じです。
事象例:
ESTATDB_統計量名【ESTATDB_STATS_FULL_NAME】は同一であるにもかかわらず、統計量【STATS_VALUE】等が異なっています。
統計量が異なっている理由は、表番号3-3は15歳未満も含めた人口総数であり、表番号4-3-1は15歳以上の人口総数であるためです。
注意:
この場合、ESTATDB_統計量名【ESTATDB_STATS_FULL_NAME】のみを指定して統計値を出すと2テーブルの統計値の合計となってしまいます。
対処方法:
ESTATDB_統計量名【ESTATDB_STATS_FULL_NAME】を指定して統計値を出す際には、
ESTATDB_統計コード【ESTATDB_STATS_FULL_ID】やESTATDB_テーブル名【ESTATDB_TABLE_NAME】を併せて指定してください。