CQLネイティブの集計

SELECT文に一致する行のセットを処理して単一値を返します。

SELECT文に一致する行のセットを処理して単一値を返す集計関数です。データ・セット内のNull値は無視されます。集計関数を含むSELECT文のselector句に他のカラム、ユーザー定義型のカラム、または関数も指定されている場合は、クエリーに一致する最初の行の値が返されます。
注意: 複数のパーティションにわたってデータを集計すると、パフォーマンスが低下する場合があります。DataStaxでは、パーティション・キーのリストを取得するには1つのパーティションに対して集計を使用し、ユニーク・キーのリストを取得するにはSELECT DISTINCT partition_keyを使用することを推奨しています(複合キーの場合は、カラム名のコンマ区切りリストを使用してください)。
ヒント: カスタム集計はCREATE AGGREGATEを使用して定義します。

構文

aggregate_name(column_name)
ここで、システム集計名は以下に示すとおりです。
AVG
AVG(column_name):ターゲット・カラムのデータ型を使用してターゲット・カラムの平均値を示します。Null値は無視されます。

数値カラム(tinyintsmallintintbigintdecimalfloatdouble)に対してのみ機能します。

COUNT
COUNT(column_name):結果セット内のNull値を含まない行の数を示します。パーティション・キーにはNullを含めることができないため、完全な行数を取得するには、パーティション・キー・カラムを使用します。

すべてのCQLデータ型のカラムに対して機能します。

MIN
MIN(column_name):最小値を示します。Null値は無視されます。

数値カラム(tinyintsmallintintbigintdecimalfloatdouble)に対してのみ機能します。

MAX
MAX(column_name):最大値を示します。Null値は無視されます。

数値カラム(tinyintsmallintintbigintdecimalfloatdouble)に対してのみ機能します。

SUM
SUM(column_name):ターゲット・カラムの合計を示します。Nullは無視されます。

数値カラム(tinyintsmallintintbigintdecimalfloatdouble)に対してのみ機能します。

以下の例は、サイクリストの例で集計を使用する方法について示しています。

平均の取得(AVG

チームの平均タイム(秒単位)を取得します。
SELECT AVG(cyclist_time_sec) AS Average FROM cycling.team_average
WHERE team_name = 'UnitedHealthCare Pro Cycling Womens Team';
結果:
average
---------
  11474

(1 rows)

カウントの取得(COUNT

United Health Care Pro Cycling Women's Teamの数値行を取得します。
SELECT count(cyclist_name) AS Row_Count FROM cycling.team_average
WHERE team_name = 'UnitedHealthCare Pro Cycling Womens Team';
結果:
row_count
-----------
        3

(1 rows)

最小値の取得(MIN

United Health Care Pro Cycling Women's Teamの記録のうち最も遅いタイムを取得します。
SELECT MIN(cyclist_time_sec) AS Fastest FROM cycling.team_average
WHERE team_name = 'UnitedHealthCare Pro Cycling Womens Team';
結果:
fastest
---------
  11449

(1 rows)

最大値の取得(MAX

United Health Care Pro Cycling Women's Teamの記録のうち最も速いタイムを取得します。
SELECT MAX(cyclist_time_sec) AS Slowest FROM cycling.team_average
WHERE team_name = 'UnitedHealthCare Pro Cycling Womens Team';
結果:
slowest
---------
  11490

(1 rows)

合計の取得(SUM

United Health Care Pro Cycling Women's Teamの記録の全タイムの合計を取得します。
SELECT SUM(cyclist_time_sec) AS Total_Time FROM cycling.team_average
WHERE team_name = 'UnitedHealthCare Pro Cycling Womens Team';
結果:
total_time
------------
     34424

(1 rows)