GROUP BY
ADQL には明示的な 句はありません。ただし、クエリに メトリック関数または バケット関数が含まれる場合、 句にフィールド名を含むクエリは /ja-jp/appdynamics-on-premises/analytics/26.1.0/分析機能/adql-リファレンス/adql-クエリ/analytics-の関数#AnalyticsFunctions-MetricFunctions--ja-jp ステートメントとして動作します。
クエリによるグループには、制限により最大で 5 つの用語しか含めることができません。用語として、(暗黙的な series GROUP BY を使用する)フィールド、または series などのバケット関数を使用できます。
集約の例
この例では、クエリにより非集約フィールドである application に基づいて、avg (responseTime) 集約がグループ化されます。したがって、結果には、アプリケーションごとに計算された平均応答時間が含まれます。
SELECT application, (responseTime)FROM transactions
例の結果:
暗黙的なグループ化は、集約フィールドの前に複数の非集約フィールドを使用することで拡張できます。例:
SELECT application, segments.tier, avg (responseTime) FROM transactions
2 番目の非集約フィールドとして tier を追加することにより、クエリで、非集約フィールドである application と tierName に基づいて avg (responseTime) 集約をグループ化します。複数のグループフィールドがあるため、2 番目の非集約フィールドである tier 名は、application グループの下位のサブグループにしています。したがって、application と tier 名の各組み合わせにより、平均応答時間が計算されるグループが形成されます。
例の結果:
SQL ユーザの場合、次の 2 つのステートメントは、それぞれの環境で同様の結果を生成します。
- ADQL クエリ:SELECT application, segments.tier,
avg(responseTime) FROM transactions - SQL クエリ:SELECT application, segments.tier,
avg(responseTime) FROM transactions GROUP BY applicationName, segments.tier
バケット関数の例
series や range などのバケット関数は、他の集約を計算できるグループを定義します。バケットは、各関数のパラメータと後続の集約を計算する形式グループによって指定します。
たとえば、次のクエリは、2 分間隔(またはバケット)の平均応答時間を計算します。
SELECT series (eventTimestamp, '2m'), avg (responseTime)
例の結果:
集約とバケット関数および暗黙的な GROUP BY を組み合わせることもできます。次のクエリは、6 時間間隔の tier ごとにグループ化された平均応答時間を返します。
SELECT series(eventTimestamp, '6h'), segments.tier, avg(responseTime) FROM transactions
例の結果: