転送する要約レコードの指定
特定の条件に合致した要約情報だけを転送する場合があります。HAVING を使用して、どの要約レコードを転送するかを選択することができます。WHERE が、グループの特定のレコードに適用されるのに対して、HAVING は要約レコードだけに適用されます。
次の例では、各部品の最高価格と最低価格が転送されます。ただし、最高価格が 10.00 を超える要約レコードだけが転送されます。
ライブラリー/ファイル (メンバー) | SUPPLIERS |
GROUP BY | PARTNO |
SELECT | PARTNO, MAX(PRICE), MIN(PRICE) |
HAVING | MAX(PRICE) > 10.00 |
HAVING を使用して不要な要約レコードを除去した後の最終結果は、次のようになります。
Field: PARTNO MAX(PRICE) MIN(PRICE)
------ ---------- ----------
Record 1: 209 19.50 18.00
2: 285 21.00 21.00
3: 207 29.00 29.00
ファイル全体についての 1 つの要約レコードを転送することもできます。これを行うには、SELECT に要約の関数だけを指定し、 GROUP BY には何も指定しません。これにより、ファイル全体が 1 つのグループと見なされ、そのグループについて 1 つの要約レコードが転送されます。
グループを要約する概念と、複数のファイルからレコードを結合する概念を 一緒に使用することもできます。所要の結果を得るためには、次の手順に従ってください。
- 「転送元」にファイルを指定し、そのレコードを結合するための結合条件を JOIN BY に指定する。
- WHERE に不要なレコードを除去する条件を指定する。
- GROUP BY に残ったレコードをグループ化するためのフィールドを指定する。
- SELECT に関数を指定して、要約レコードを作成する。
- HAVING に不要なレコードを除去するための条件を指定する。
- ORDER BY に最終的な要約レコードをグループ化するための項目を指定する。