集計関数には、引数に指定した行セットのデータに基づいて算出される値を指定します。カッコで囲まれたパラメータは式を表します。
選択リストまたはHAVING句に集計関数を指定できます。詳細は、「INSERT SELECT」を参照してください。式の値は、WHERE句の条件を満たす各行を使用して計算されます。
{AVG ({Expression | [ALL | DISTINCT] ColumnName})
MAX ({Expression | [ALL | DISTINCT] ColumnName | ROWID})
MIN ({Expression | [ALL | DISTINCT] ColumnName | ROWID})
SUM ({Expression | [ALL | DISTINCT] ColumnName})
COUNT ({ * | [ALL | DISTINCT] ColumnName | ROWID})
}
Expression | 集計関数の引数を指定します。式自体を集計関数として指定することはできません。 |
AVG | 引数の値の平均値を計算します。NULL値は無視されます。AVG関数は、数値データ型に対してのみ適用できます。 |
MAX | 引数の値の最大値を検索します(英数字型のASCII比較)。NULL値は無視されます。MAXは、数値、文字およびBINARYデータ型に適用できます。 |
MIN | 引数の最小値を検索します(英数字型のASCII比較)。NULL値は無視されます。MINは、数値、文字およびBINARYデータ型に適用できます。 |
SUM | 引数の値の合計を計算します。NULL値は無視されます。SUMは、数値データ型に対してのみ適用できます。 |
COUNT * | WHERE句を満たす行の数を、NULL値の行も含めてカウントします。結果のデータ型はTT_INTEGERです。表の行数の詳細は、SYS.TABLESのNUMTUPSフィールドの説明を参照してください。 |
COUNT ColumnName | 特定の列のすべての行をカウントします。NULL値を含む行はカウントされません。結果のデータ型はTT_INTEGERです。表の行数の詳細は、SYS.TABLESのNUMTUPSフィールドの説明を参照してください。 |
ALL | 集計関数の引数に重複する行を含めます。ALLまたはDISTINCTのいずれも指定しない場合は、ALLとみなされます。 |
DISTINCT | 集計関数の引数から、重複する列の値を削除します。2つ以上の列に対して指定できます。 |
HRスキーマで従業員の平均給与を計算します。CASTを使用して平均を列のデータ型としてキャストします。
Command> SELECT CAST(AVG (salary) AS NUMBER (8,2)) FROM employees;
< 6461.68 >
HRスキーマで従業員の最大給与を計算します。
Command> SELECT MAX (salary) FROM employees;
< 24000 >
1 row found.
この例では、DESCRIBEを使用して、SUM集計使用時に返されるデータ型を示します。表AGGREGATESが作成され、別のデータ型の列が定義されます。
Command> CREATE TABLE Aggregates (Col1 TT_TINYINT, Col2 TT_SMALLINT, Col3 TT_INTEGER, Col4 TT_BIGINT, Col5 NUMBER (4,2),
Col6 TT_DECIMAL (6,2), Col7 BINARY_FLOAT, Col8 BINARY_DOUBLE);
Command> DESCRIBE SELECT SUM (Col1) FROM Aggregates;
Prepared Statement:
Columns:
EXP TT_INTEGER
Command> DESCRIBE SELECT SUM (Col2) FROM Aggregates;
Prepared Statement:
Columns:
EXP TT_INTEGER
Command> DESCRIBE SELECT SUM (Col3) FROM Aggregates;
Prepared Statement:
Columns:
EXP TT_INTEGER
Command> DESCRIBE SELECT SUM (Col4) FROM Aggregates;
Prepared Statement:
Columns:
EXP TT_BIGINT
Command> DESCRIBE SELECT SUM (Col5) FROM Aggregates;
Prepared Statement:
Columns:
EXP NUMBER
Command> DESCRIBE SELECT SUM (Col6) FROM Aggregates;
Prepared Statement:
Columns:
EXP TT_DECIMAL (40,2)
Command> DESCRIBE SELECT SUM (Col7) FROM Aggregates;
Prepared Statement:
Columns:
EXP BINARY_FLOAT
Command> DESCRIBE SELECT SUM (Col8) FROM Aggregates;
Prepared Statement:
Columns:
EXP BINARY_DOUBLE