はじめに
ここでは、「Microsoft SQL Server Management Studioを使ってみよう」で作成したテーブル「c03」を使ってテーブルの中身を確認したいと思います。
行番号の表示
データを確認するには、データを検索して結果を表示させる必要があります。
SQLのSELECT文(検索)を実行することで結果を得られます。
下記はクエリエディタですが、行番号がありません。
クエリを実行し、エラーが発生した場合、どこでエラーが発生したかわかるよう行番号を表示するとよいです。
Microsoft SQL Server Management Studioの「ツール」→「オプション」を選択します。
オプションの「テクストエディター」→「すべての言語」→「全般」を選択し、「行番号」にチェックし「OK」を選択します。
すると以下のようにクエリエディタの左側に行番号が表示できました。
テーブル全体の件数を確認する
「c03」テーブルを右クリック→「プロパティ」を選択します。
ストレージを選択すると、行数が「17668」であることが確認できました。
クエリを使って結果を確認してみます。
以下をクエリエディタにコピペし、実行ボタンか、キーボードの「F5」を押すとクエリ実行できます。
SELECT
COUNT(*)
FROM
[tech_datalake].[dbo].[c03]
;
結果は「17668」となりました。
データを集約し全体感を把握する
本データの件数が100件程度なら、1行1行どんなデータか確認できますが、1万件を超えているので全チェックはさすがに厳しいです。
1件1件確認することはできないですが、データを集約しながら確認することで全体感を把握することができます。
データ分析業務において大量データを扱うときはデータを集約しながらどんなデータを扱っているのか確認することがとても大事です。
今回扱うデータを再確認しましょう。
一部を抜粋しています。
北海道の年齢5歳階級別、1920年のデータです。
年齢5歳階級ですが「総数」、「80歳以上」になっている行もありますね。
年齢5歳階級が「総数」の行は他と単位が大きく異なる(0~80歳以上の合計)ので、同じテーブル内に入れると誤って利用されてしまうことがあります。
こういったものはテーブル作成時には除外しましょう。(今回はそのままにしますが)
これが都道府県(47)×階級数(18)×1920~2015年までの5年刻み(国勢調査は5年単位のため)分(19)=16,074件分の人口データが入っているはずであることが想像できるかと思います。
しかし、デーブルの件数は 17,668 だったので乖離があるようです。
どこが乖離しているか確認してみましょう。
以下は都道府県別の行件数を抽出するクエリです。
こちらを実行しましょう。
SELECT
[都道府県コード],
[都道府県名],
COUNT(*)
FROM
[tech_datalake].[dbo].[c03]
GROUP BY
[都道府県コード],
[都道府県名]
ORDER BY
[都道府県コード],
[都道府県名]
;
結果は以下の通りです。
そもそも 階級数(18)×1920~2015年までの5年刻み(国勢調査は5年単位のため)分(19) =342になっていないので、何かしらデータパターンが想定と異なるところが出てきているようです。
また結果をスクロールすると、沖縄県の行件数が他と異なっていたり、48行目には注記が含まれていたりします。
そもそも注記はテーブルに取り込む出来ではないので除外する必要がありますし、沖縄県は何かしら扱いを検討しないといけなそうということがわかります。
次に西暦別に行件数を抽出するクエリを実行してみましょう。
SELECT
[西暦(年)],
COUNT(*)
FROM
[tech_datalake].[dbo].[c03]
GROUP BY
[西暦(年)]
ORDER BY
[西暦(年)]
;
結果は以下の通りで、1920~1955年までは行件数がまちまちで、1960年以降は行件数が「893」固定になっています。
こちらも取り扱いが注意のものです。
そこで北海道の年齢5歳階級別、2015年(直近)のデータを見てみます。
1920年は80歳以上の階級でしたが、80~84歳、85歳以上と階級が分かれています。
私も直近数年分の国勢調査のデータしか使ったことがないですが、古いデータを扱う場合は
データパターンが変わっていないかなど確認してから使用するようにしましょう。
コメント