AccessクエリとSQLの関係 Accessグループ化 集計クエリ

さて、本日は、MS Accessの話題である。
例によって、クエリのデザインビューとSQLビューの対比の記事である。
Accessでのテーブルの結合方法についてやってみたかったのだが、その前にグループ化をやっていなかった。ちょっとやってみよう。
グループ化
そもそも、グループ化とはなんぞや。というところから始めるとする。
「SQLはじめの一歩」を始め、いろいろとグループ化の概念を説明してきたわけではあるが、言葉で説明するのが結構難しかったりする。図を書いてイメージしたらすんなり理解できるものであるように思える。

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2015/03/03
  • メディア: 単行本(ソフトカバー)

あーんでも図作るの面倒だし。
ということで、文章で説明していくことにする。
グループ化というのは、グループに分ける作業のことを言う。誰がグループに分ける作業をやっていくれるかというと、それはデータベースシステムの方である。ユーザは、SQL命令とかでグループ化してね、とシステムに命令するわけである。
何を単位に選別されるかというと、データベースではレコード単位で選別されることになる。
このレコードはグループA、こっちはグループBという風にAccessが命令に従って分類してくれる。
どういう感じでグループ分けしたいのかはクエリの命令で設定できる。
よくやるのは、一つの列を指定するだけ、というもの。
とある列を指定すると、その列の値が同じものを集めてグループ分けされるようになる。
グループ分けをしたら、何ができるようになるのかというと、グループ単位で合計や平均を計算したりすることが可能になるのである。多くは、合計計算とか個数計算かな。俗に言う「集計」ができるようになるのである。
グループする条件がない、という場合もある。そうすると、分類する必要がないので、全体が一つのグループになる。
クエリのデザインビューでグループ化をやってみよう。まずは、適当なテーブルを作成する。SQLポケリの集計関数にある住所録テーブルを例にすることにしよう。
Access 住所録テーブル 2017-07-22 (1).png
クエリのウインドウって文字が小さいですよね。
最近のディスプレイは高解像度なのは良いが、文字が小さ過ぎる。
そんな関係で、フォントサイズを12ポイントに設定している。
ファイル -> オプション -> オブジェクト デザイナ
のクエリ デザインのフォントで変更可能。
Access デザイナのフォントサイズを変更 2017-07-22 (3).png
集計クエリ
さて、話が脱線気味になってしまった。本題である、グループ化をやってみよう。
グループ化をするには、クエリを「集計クエリ」にすれば良い。
住所録テーブルからSELECTするクエリを作成し、集計ボタンをクリックする。
Access 集計ボタンをクリック 2017-07-22 (4).png
集計クエリボタンをクリックすると、デザインビューに「集計」の入力欄が増える。
Access 集計の入力欄が増える 2017-07-22 (5).png
この入力欄にグループ化したい列をズバリ「グループ化」に指定していく。
グループ化したい列のところを「グループ化」にすればよいのだが、住所録テーブルの何でグループ化すべきか。
順当なところで、「性別」でグループ化してみよう。
以下のように設定してみた。
Access 性別でグループ化 2017-07-22 (8).png
フィールドに結果として欲しい列を指定するわけであるが、集計クエリになっていると、自動的にグループ化が選択される。
この状態で、実行させてみた。ついでにSQLビューがどうなったかも載せておく。
Access 集計クエリの実行結果 2017-07-22 (6).png
実行結果をみてわかる通り、性別にはふたつのグループがある。「男」と「女」の2グループである。
SQLビューをみると、SELECT命令の後に「GROUP BY」が付いていることがわかる。
集計クエリ = GROUP BY
ということである。
個数の集計
性別にふたつのグループがあることがわかっても「だから何?」な感じである。
集計クエリは、集計関数とともに使用しないと、あまり意味がない。
ここでは、最も基本的な集計関数である「COUNT」を使ってグループの個数を計算してみることにする。
Access カウントで個数を計算 2017-07-22 (9).png
性別には、男と女のグループがあり、それぞれ3個のレコードが存在することがわかった。
ちなみに、デザインビューでの「カウント」は、SQLビューにすると「Count」になる。
本日は、ここまで。
関連記事
AccessクエリとSQLの関係 デザインビューとSQLビュー
AccessクエリとSQLの関係 フィールド
AccessクエリとSQLの関係 フィールドに式を書く
AccessクエリとSQLの関係 並び替え
AccessクエリとSQLの関係 抽出条件
AccessクエリとSQLの関係 抽出条件(または)
AccessクエリとSQLの関係 抽出条件(INとLIKE)
AccessクエリとSQLの関係 抽出条件(表示のチェックボックス)

投稿者プロフィール

asai
asai