2012-02-27 1 views
1

使用方法:アクセス2003Access 2003で特定の列の平均を検索する方法は?

私は少なくとも250のデータエントリを持つテーブルを持っています。私の目標は、いくつかの列の平均(たとえば、TotalNumSuverys列の平均)を見つけることです。特定の列に応じて、エントリの総数が異なるため、SUM /(Surveryテイカーの数)のような単純な数学的方程式は機能しません。

どのようにして平均値を得ることができますか?

(私はクエリビューで「平均」の集計を試み、それが平均値の行ない列ことを見出した。)

「foreachループ」のような何かを行うことができるようになる任意のSQLはありますか?

- これは非常に新しいです、申し訳ありません!

+1

'SELECT平均列の平均値を与えるT 'テーブルからAvgOfANumber AS(t.ANumber) 、 数。なんでしょう?サンプルデータを含めてください。 – Fionnuala

答えて

2

Avg()関数は、カラム内のNull以外の値の平均(算術平均)を提供します。または、あなたの例では、Null値は "SUM"と "Surveryテイカー数"の両方から除外されます。

アクセス 'のクエリデザイナーは、最初(私が思い出すように)混乱する可能性があります。あなたはこのパターンを使用した例文でSQLビューと型に切り替えた場合多分それはMYCOLUMNとMyTableというのためのあなたのテーブル名については、列名に置き換えて... ...あなたに

SELECT Avg(MyColumn) AS AvgOfMyColumn 
FROM MyTable; 

をより理にかなって。次に、クエリ(データシートビュー)を実行して、何が表示されるかを確認します。デザインビューに戻って、そこにどのように表示されるかを確認することができます。

他の集計関数は、Avg()だけでなく、Null値も無視します。たとえば、Count(MyColumn)は、MyColumnがNullでない行数を示します。 [個々の列にNullが含まれているかどうかにかかわらずすべての行をカウントする場合は、Count(*)を使用します。] Sum(MyColumn)は、Null以外のMyColumn値のみを追加します。

0

何らかの理由Avg()があなたのために動作しない場合は、基本的な方法を使用することができます。

Dim rSet As DAO.Recordset, cnt As Integer, sum As Integer, avg As Variant 
rSet = CurrentDb.OpenRecordset ("Select Sum(MyColumn), Count(MyKey) from MyTable") 
sum = rSet.Fiels(0) 
cnt = rSet.Fiels(1) 
avg = sum/cnt 
MsgBox "The average is " & avg 
関連する問題