<html><head>		<META http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" href="josh.css"></head><body bgcolor="#FFFFFF">
<div id="説明">
			<table width="100%" cellspacing="0" cellpadding="0" border="0">
				<tr><td valign="top" class="name">集計関数</td><td valign="top" nowrap class="compatibility">&#160; </td>
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="Description"><p> 集計関数は、値の集合に基づく値を 1 つ返します。この関数を、<span class="emphasis">SELECT</span> ステートメントの項目リストの中で複数の式と共に使用する場合は、<span class="emphasis">SELECT</span> ステートメントに <span class="emphasis">GROUP BY</span> 句を指定する必要があります。その集計関数の結果が、<span class="emphasis">SELECT</span> ステートメントで取得される唯一の値である場合、<span class="emphasis">GROUP BY</span> 句は不要です。SQL99 でサポートされている集計関数とその構文を表 4.1 に示します。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="Description"><span class="title">SQL99 の集計関数 </span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2">
						<table border="1"><thead><tr><th>関数</th><th>目的</th></tr>
							</thead><tbody><tr><td>AVG(expression)</td><td>式で指定された列の平均値を計算します。</td>
								</tr>
								<tr><td>COUNT(expression)</td><td>式で定義された行をカウントします。</td>
								</tr>
								<tr><td>COUNT(*)</td><td>指定されたテーブルまたはビュー内の行をすべてカウントします。</td>
								</tr>
								<tr><td>MIN(expression)</td><td>式で指定された列の最小値を検出します。</td>
								</tr>
								<tr><td>MAX(expression)</td><td>式で指定された列の最大値を検出します。</td>
								</tr>
								<tr><td>SUM(expression)</td><td>式で指定された列の値を合計します。</td>
								</tr>
							</tbody></table>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" class="Description"><p>厳密に言えば、ANY、EVERY、および SOME も集計関数に含まれます。ただし、これらは検索範囲を指定するために使用されることが多いため、本マニュアルでもそのように扱っています。これらの関数の詳細については、第 3 章の SELECT . . . WHERE の説明を参照してください。</p><p>集計で処理される値の数は、テーブル内でクエリーの対象となる行の数に依存します。これが、スカラー関数と異なる点です。スカラー関数では、決まった種類のパラメータが一定の数だけ必要になります。</p><p>集計関数の一般的な構文は次のとおりです。</p><span class="programlisting"><pre>aggregate_function_name ( [ALL | DISTINCT] expression )</pre>
						</span><p>集計関数名には、AVG、COUNT、MAX、MIN、または SUM を指定します。ALL 句は、関数の値を集計する際にすべての行を評価します。これはデフォルトの動作なので、実際に指定する必要はありません。DISTINCT 句は、関数を評価する際に個別値のみを使用します。</p>
					</td>
				</tr>
			</table>
		</div><div id="AVG と SUM">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main">
				<tr><td valign="top" class="name">AVG と SUM</td><td valign="top" nowrap class="compatibility">&#160;</td>
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description"><p>AVG  関数は、列または式の平均値を計算します。SUM  関数は、合計を計算します。どちらの関数にも数値を指定します。NULL 値は無視されます。また、どちらの関数も、列または式のすべての<span class="emphasis">個別</span>値の平均または合計を計算するために使用できます。</p><p><span class="emphasis">AVG</span> と <span class="emphasis">SUM</span> は、Microsoft SQL Server、MySQL、Oracle、および PostgreSQL でサポートされています。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次のクエリーは、書籍の種類別の年間平均売上を計算します。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>SELECT   type, AVG( ytd_sales ) AS "average_ytd_sales"
FROM     titles
GROUP BY type;</pre>
						</span></td>
				</tr>
				<tr>
					<td><p>次のクエリーは、書籍の種類別の年間総売上を計算します。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>SELECT   type, SUM( ytd_sales )
FROM     titles
GROUP BY type;</pre>
						</span></td>
				</tr>
			</table>
		</div><div id="COUNT">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main">
				<tr><td valign="top" class="name">COUNT</td><td valign="top" nowrap class="compatibility">&#160;</td>
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description"><p>COUNT 関数には、3 つのバリエーションがあります。COUNT(*) は、NULL 値を含むかどうかに関係なく、対象テーブルのすべての行をカウントします。COUNT(expression) は、指定された列または式において非 NULL 値を持つ行の数を計算します。COUNT(DISTINCT expression) は、指定された列または式において個別の非 NULL 値を持つ行の数を計算します。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次のクエリーは、テーブル内の行の総数をカウントします。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>SELECT COUNT(*) FROM publishers;</pre>
						</span></td>
				</tr>
				<tr>
					<td><p>次のクエリーは、出版社が存在している国の数をカウントします (重複分はカウントしません)。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>SELECT COUNT(DISTINCT country) "Count of Countries"
FROM   publishers</pre>
						</span></td>
				</tr>
			</table>
		</div><div id="MIN と MAX">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main">
				<tr><td valign="top" class="name">MIN と MAX</td><td valign="top" nowrap class="compatibility">&#160;</td>
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description"><p>MIN(expression)  <span class="emphasis"></span> と MAX(expression)<span class="emphasis"></span> は、行の集合における最小値と最大値 (文字列、日時、または数値) を検出します。これらの関数に DISTINCT または ALL を指定することもできますが、結果には影響しません。</p><p><span class="emphasis">MIN</span> と <span class="emphasis">MAX</span> は、Microsoft SQL Server、MySQL、Oracle、および PostgreSQL でサポートされています。</p><p>MySQL では、同じ機能の LEAST( ) 関数と GREATEST( ) 関数もサポートされています。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次のクエリーは、レコードにあるタイトルのうち、売上の最も多いものと最も少ないものを検出します。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>SELECT  'MIN' = MIN(ytd_sales), 'MAX' = MAX(ytd_sales)
FROM    titles;</pre>
						</span></td>
				</tr>
				<tr>
					<td><p>集計関数は、GROUP BY 句と共に、クエリーの HAVING 句で使用されることがよくあります。次のクエリーは、当該カテゴリ (type) に含まれる全書籍の平均価格が $15.00 を超えるカテゴリをすべて選択します。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>SELECT  type 'Category', AVG( price ) 'Average Price'
FROM    titles
GROUP BY type
HAVING AVG(price) &gt; 15
</pre>
						</span></td>
				</tr>
			</table>
		</div>
	</body></html>