<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 MS-Access97超入門>その他のクエリ
 集計クエリ(Σ) クエリで計算式 クロス集計クエリ 不一致クエリ



■集計クエリ(Σ)

クエリーの中で、集計をとってみましょう。

例えば、下のようなテーブルがあったとします。名前を[名簿テーブル]と申します。
いちおう、学生の名前などを書き記したテーブルなんですが、[かせぎ]っていうフィールドと[学部]っていうフィールドがありますよね。

「個人個人ではなく、学部ごとにかせぎの金額を集計できないかな」と、いう場合、まず集計クエリーというものを作ってみましょう。

まずはこのテーブルの中身をじっくり見て、完成品をイメージしてください。

明細の単位が、[学籍番号]じゃなくて[学部]になるんですよね。


途中までふつうのクエリーです。[名簿テーブル]を基にクエリーを新規に作成し、[学部]と[かせぎ]だけグリッドに選びます。

なんでフィールドがふたつだけか・・・というのは・・・・・・わかりますよね。

で、ツールバーを見ます。Σマークのツールボタンがありますよね。[集計]というボタンです。
これをクリックしてへこましましょう。ほんとにはへこまないですよ。
なんかへっこんだように見える、って意味です。

すると・・・グリッド上に「集計」という新たな欄が現れ、「グループ化」と勝手に何か設定値が入ってます。

[学部]はぐループ化のまま、[かせぎ]の集計方法を「合計」にしましょう。

このクエリーの意味は、「学部ごとにグループ化して、それぞれの学部に所属する学生のかせぎの合計はいくらか、学部ごとに算出する」・・
という意味になります。
明細の単位は学生個人個人ではなくて、学部単位ということになりますよね。

と、出力結果は左のようになりました。
学部ごとにグループ化され、それぞれ学部ごとのかせぎはいくらになるのか、縦集計してるわけですね。

[かせぎの合計]というフィールド名が、自動的に付けられるようになっています。
このフィールド名は変えることもできますが、特に必要なければこのままでもよいでしょう。

もちろん、グループ化するフィールドを[成績]にすれば、成績Aの学生たちのかせぎの合計は???というクエリーに生まれ変わります。
いろいろ使えそうですよね。

ただし、ひとつの集計クエリーの中に、複数のグループを混在させることは難しいです。
「学部ごとのかせぎの合計」と「成績ごとのかせぎの合計」を横一列に並べることって、できませんよね。
そりゃ、明細の単位がぜんぜん違いますもんね。横に並べるっていったってそんなミラクルなことは・・・。

こういう場合は、別のクエリーとして「学部ごとのかせぎの合計を出すクエリー」と「成績ごとのかせぎの合計を出すクエリー」をひとつずつ作って使いわける必要があります。

でも、なかなか便利ですよ。いろいろ研究しておくと、お作りになってるdbの中で、役に立つかもしれません。

こういうクエリーは、ここからは「新規レコード追加」とか、「値の入力変更」とかできないですよね。
かせぎの合計を11063100から12000000に書き変えようと思っても、受け付けません。

基のテーブル([名簿テーブル])と、明細の単位が違いますからね。


せっかくですから、なんか名前を付けて保存しておきましょうか。なんでもいいですよ。

いろいろ作っていくと、クエリーとテーブルの区別が、名前ではつきにくくなることも考えられますよね。
アタマにQとかTとか、なんかわかりやすい文字を付けてネーミングするとよいかも知れませんね。


それはそうと、集計の方法にずいぶんいろいろなのがありますよね。

だいたい、よく使われるのは「合計」と「カウント」じゃないかなーと思います。
このふたつはなんとなくどういう時使えばいいか、想像つくと思います。

下のは「カウント」した場合です。要するに「理工学部に5人、経済学部に4人学生がいるよ」という意味ですかね。
レコード件数を数えてるわけです。これもなんかに使えそうですよね。

「平均」っていうのも、その学部のかせぎの平均金額を求めるってことで、まあワカラナイでもないか。。。
あとのは、どういうときに使うんでしょうね。

最大、っていうのは、多分、「その学部のなかで、一番かせぎが多かった人のかせぎはいくら?」ということでしょうね。
それが誰なのか、までは拾ってこないですけど・・・。まあ、なにかの値の目安とか、そういうのに使えそうです。

「標準偏差」ってなんだろうな・・・。

わはははは。なんじゃこりゃ。いったい何を出してるんだ???

「分散」っていうのは・・・。

うーむ・・・どうやらぴしっと割り切れないらしく、ものすごい数値になってますね。


こりゃあ「数学」のお話ですね。これはSQL集計関数のStDev( )Var( )という関数を使って、レコードの値を基に答えを出していることになります。

Accessのヘルプに従うと、標準偏差とは

確率関数が、どのような状態で平均値の辺りに集約されているかを表すパラメータです。
平均値からの偏差を 2 乗して得られる積率の平方根と同じ値です。
個々の値が平均値からどれだけ離れているかを示すことで、一連の値の性質を表します。

そうそう。学生時代「偏差値」ってありましたよね。あれですかね。

同じく分散とは、

標準偏差の平方のことです。グループ内の値がそれらの平均値からどの程度離れているかを示す値です。

そうすると、各学部ごとに、かせぎの金額のばらつきを見よう、ということになりますか。むずかしいですね・・・。
数値を正確に算出するというよりも、だいたいの値を出して、全体の平均値と比べて。。。。
各学部のかせぎの位置関係がどんなもんか知りたいときに使うといいのかな。