コース: データ分析 入門1:基本

クエリを使ってデータをモデリングする

コース: データ分析 入門1:基本

クエリを使ってデータをモデリングする

データをモデル化するには、 さまざまな方法があります。 データベースに直接アクセスできる場合は、 クエリを使って データをモデル化することが多いでしょう。 ここでは、結合を使い、 データベースでデータモデルを 作成する方法を学習していきます。 「06_05」フォルダ内の アクセスファイル、 「ModelDataWithQueries」を 表示しています。 支出データの調査テーブルを開くと、 アンケートデータが表示されます。 さまざまな回答日で、 アンケートに回答されていることが わかります。 262 件のアンケート回答データが あることがわかります。 このデータを、 日付別に分析していきます。 例えば、何曜日が最も人気があるのか、 または、何月が最も人気がないのか といった視点で調べたいと思います。 そのために、再利用可能な 日付データセットを活用します。 「外部データ」タブから、 「新しいデータソース」を選択し、 「ファイルから」> 「Excel」の順にクリックします。 「参照」ボタンをクリックし、 「Dates.xlsx」ファイルを 選択します。 「現在のデータベースの新しいテーブルに、 ソースデータをインポートする」が 選択されていることを確認し、 「OK」をクリックします。 日付データが表示されました。 「次へ」をクリックします。 「先頭行をフィールド名として使う」に チェックが付いていることを確認し、 「次へ」をクリックします。 「次へ」をクリックします。 「主キーを設定しない」を選択し、 「次へ」をクリックし、 さらに「完了」をクリックします。 そして「閉じる」をクリックします。 支出調査のアンケートデータと 日付データの2つのテーブルが 表示されました。 2つのデータセットを活用していきます。 一番人気のある日を調べるクエリを 作成していきましょう。 「作成」タブの 「クエリデザイン」をクリックします。 2つのテーブルをドラッグし、 画面上半分のフィールドリストへ 配置します。 日付テーブルの公式日付を アンケートテーブルの 開始日へドラッグします。 内部結合しました。 日付テーブルから「曜日名」と 「アンケートテーブル」から 「*」をダブルクリックして 画面下半分の デザイングリッドに配置します。 アンケートテーブルのタブをクリックし、 レコード件数を確認します。 262 件です。 クエリに切り替え、 「実行」ボタンをクリックします。 曜日名が1列目に表示されました。 データセットを結合することで、 曜日の計算を行う必要なく、 曜日情報を取得することができました。 作成したクエリタブの上で 右クリックし、 「上書き保存」を選択し、 「クエリ名に最も人気のある調査日」と 名前を付けて保存します。 次に、調査期間中、 毎日アンケートに回答があったかどうかを 調べることにします。 調査期間は、 2020 年7月 24 日から 8月 30 日までです。 日付テーブルには、 5年分の日付が含まれているため、 調査期間のレコードに、 絞り込むためのクエリを作成します。 「作成」タブの 「クエリデザイン」をクリックします。 日付テーブルを デザイングリッドにドラッグして 挿入します。 ここでは、 すべてのデータを取り込みます。 Shift キーを押しながら、 最後のフィールド名をクリックして、 すべてのフィールドを選択してから、 デザイングリッドへドラッグします。 公式日付列の抽出条件に、 between スペース 2020/7/24 スペース and スペース 2020/8/30 と入力します。 Access では、日付データは #記号で囲まれて表示されます。 では、「実行」を選択します。 調査期間の日数は、 38 日間だとわかります。 それでは、作成したクエリのタブ名で 右クリックし、 「上書き保存」を選択します。 「アンケート日付期間」という 名前を付けて保存します。 2つのクエリを閉じます。 クエリの結合の種類を操作し、 アンケート回答のあった日と なかった日を特定していきます。 「作成」タブから 「クエリデザイン」を選択します。 アンケートテーブルと 「アンケート日付期間」クエリを フィールドリストへドラッグします。 「公式日付」フィールドを 「開始日」フィールドへ ドラッグして結合します。 「公式日付」「曜日名」「月名」 「年」「曜日」を ダブルクリックして追加します。 アンケートテーブルからは、 「*」をダブルクリックして、 すべての列を追加します。 この後、結合の種類を 調整していくことになります。 ポイントは、7月 24 日から 8月 30 日までの期間中に、 アンケートの回答データが 存在するか否かに関わらず、 期間中のすべての日付データを 表示させます。 そうすることで、調査期間中 毎日アンケート回答があったかどうかを 把握できるようになります。 結合線の上で右クリックし、 「結合プロパティ」を選択します。 2番目にある 「’アンケート日付期間’ の全レコードと ’Servey Spending Data’ の 同じ結合フィールドの レコードだけを含める」を選択し、 「OK」をクリックします。 そして、実行します。 調査期間中のアンケートデータが 表示されています。 レコードは、日付順に並んでいます。 画面を下へスクロールしていくと、 8月8日と9日のレコードには、 回答がありませんね。 8月 11 日と、12 日にも 回答がありません。 クエリの実行結果をよく見ると、 レコード件数は 281 ですが、 結果として正しいのでしょうか。 アンケートテーブルを開いて確認すると、 262 レコードです。 レコード数の差は、 開始日フィールドを日付で並べ替えて 確認することができます。 フィールド名を右クリックすると、 並べ替えが選択できます。 「降順で並べ替え」 をクリックします。 すると、調査期間外の 9月2日のデータがあること、 調査期間8月 15 日から 30 日の データがないことがわかります。 9月2日については、 アンケート日付期間クエリによって、 除外されています。 調査完了です。 作成した「クエリ」タブの上で 右クリックし、 「上書き保存」を選択します。 「クエリ名」を 「調査期間データ抽出」として保存します。 データ、クエリ、結合を活用することで、 要件を満たすデータセットを 作成することができます。

目次