ACCESS {Article002}

ようこそ「Access」へ...

Accessのテーブルに対してクロス集計クエリを作成する

ここではMicrosoft Accessのテーブルに対してクロス集計クエリを作成する手順を解説します。 クロス集計クエリはAccessの「クロス集計クエリウィザード」を使用すると容易に作成することができます。 ここで作成したクロス集計クエリは、Python Pandas等にテーブルのレコードを取り込むときに利用します。 なお、ここではMicrosoft 365のAccessを使用しています。

解説文の左側に図の画像が表示されていますが縮小されています。 画像を拡大するにはマウスを画像上に移動してクリックします。 画像が拡大表示されます。拡大された画像を閉じるには右上の[X]をクリックします。 画像の任意の場所をクリックして閉じることもできます。

操作手順

Accessのクロス集計クエリを作成する

  1. Accessを起動してデータベースを開く

    click image to zoom!
    図1
    Accessを起動したら「Stats.accdb」データベースを開きします。 そして「WorldPopulation」テーブルをダブルクリックして開きます。 「WorldPopulation」テーブルには年度別の各国の人口が格納されています。 このテーブルは「ID」、「Country」、「SurveyYear」、「Population」のフィールドから構成されています。
  2. クロス集計ウィザードを起動する

    click image to zoom!
    図2
    「WorldPopulation」テーブルを閉じたら、Accessの「作成」メニューから「クエリウィザード」をクリックします。 「新しいクエリ」のウィザードが起動したら一覧から「クロス集計ウィザード」を選択して[OK]ボタンをクリックします。
  3. 「WorldPopulation」テーブルを選択

    click image to zoom!
    図3
    「クロス集計クエリウィザード」から「WorldPopulation」テーブルを選択して[次へ]のボタンをクリックします。
  4. 行見出しとして「SurveyYear」フィールドを選択

    click image to zoom!
    図4
    「クロス集計クエリウィザード(行見出し)」の「選択可能フィールド」から「SurveyYear」フィールドを選択して[次へ]のボタンをクリックします。
  5. 列見出しとして「Country」フィールドを選択

    click image to zoom!
    図5
    「クロス集計クエリウィザード(列見出し)」の一覧から「Country」フィールドを選択して[次へ]のボタンをクリックします。
  6. 集計するフィールドとして「Population」を選択

    click image to zoom!
    図6
    「クロス集計クエリウィザード(集計するフィールド)」のフィールド一覧から「Population」フィールドを選択します。 「集計方法」の一覧から「合計」を選択したら[次へ]のボタンをクリックします。
  7. クロス集計クエリ名を入力して保存

    click image to zoom!
    図7
    「クロス集計クエリウィザード(クエリ名指定)」の「クエリ名」のテキストボックスにクロス集計クエリの名前「WorldPopulation_Crosstab」 を入力したら[完了]ボタンをクリックします。
  8. クロス集計クエリが表示された

    click image to zoom!
    図8
    クロス集計クエリが表示されたら右下の「SQL」をクリックしてSQLコマンドを表示します。
  9. SQLコマンドを編集して保存

    クロス集計クエリのSQLコマンドが表示されたら上段のコマンドを下段のようなシンプルなコマンドに編集して保存します。
    TRANSFORM Sum(WorldPopulation.[Population]) AS Populationの合計
    SELECT WorldPopulation.[SurveyYear], Sum(WorldPopulation.[Population]) AS [合計 Population]
    FROM WorldPopulation
    GROUP BY WorldPopulation.[SurveyYear]
    PIVOT WorldPopulation.[Country];
      ⇓
    TRANSFORM Sum(Population) AS Population_Sum
    SELECT SurveyYear, Sum(Population) AS Population_Total
    FROM WorldPopulation
    GROUP BY SurveyYear
    PIVOT Country
    
    click image to zoom!
    図9
    図9はSQLコマンドを編集後の画面です。