The GROUP BY句一緒に使用される集約機能グループに分析結果いずれかに基づい以上列あなたがあります。 The GROUP BY句ROLLUPと一緒に使用することができ、CUBE、とGROUPING SETS生成する複数のグループ化セット。
構文
- GROUP BY
GROUP BY句は、指定した1つ以上の列に基づいて分析結果をグループ化します。
SELECT キー、 ... 集計関数 GROUP BY キー、...
- ROLLUPによるグループ
GROUP BY ROLLUP句は、ロールアップ操作に基づいて分析結果をグループ化します。 この句は、各グループの小計とすべてのグループの総合計を返します。 たとえば、GROUP BY ROLLUP (a, b) を使用すると、(a, b) 、(a, null) 、および (null, null) のグループ化セットが生成されます。
選択 キー、 ... 集約機能 GROUP BY ROLLUP (キー、...)
- GROUP BY CUBE
GROUP BY CUBE句は、可能なすべての列の組み合わせに基づいて分析結果をグループ化します。 For例、使用する場合GROUP BY CUBE (a、b) 、次のグループ化セットは生産: (a、b) 、(ヌル、b) 、(、ヌル) 、と (ヌル、ヌル) 。
選択 キー、... 集計関数 CUBEによるグループ (キー、...)
- GROUP BY GROUPING SETS
The GROUP BY GROUPING SETS句グループ分析結果ベースの列にあなたに指定し。 たとえば、GROUP BY GROUPING SETS (a, b) を使用すると、(a, null) および (null, b) のグループ化セットが生成されます。
選択 キー、... 集計関数 GROUP BY GROUPING SETS (キー、...)
* | SELECT status, request_time, COUNT(*) AS PV GROUP BY status
は無効です。 Youステートメント * | SELECT状態に変更することができ、任意の (request_time) 、カウント (*) AS PV GROUP BY状態
、が有効です。 パラメーター
項目 | 説明 |
---|---|
キー | The名ログのフィールドまたは名前の列によって返さその値は集約機能。 GROUP BY句は、指定したログフィールドまたは列に基づいて結果をグループ化します。 GROUP BY句を使用すると、1つ以上の列を指定できます。 |
集約機能 | The集約機能と一緒に使用されているGROUP BY句。 GROUP BY句は、min、max、avg、sum、countなどの集計関数と一緒に使用されることがよくあります。 詳細については、「集約関数」をご参照ください。 |
例
例 1
ステータスコードに基づいてページビュー (PV) の数をグループ化します。
- クエリ文
* | SELECTステータス、カウント (*) AS PV GROUP BYステータス
- クエリおよび分析の結果
例 2
1時間間隔に基づいてPVの数をグループ化します。 次のステートメントでは、__time__ フィールドはLog Serviceの予約済みフィールドです。 このフィールドは時間列を示します。 timeは、date_trunc('hour', __time__)
のエイリアスです。 date_trunc関数の詳細については、「date_trunc関数」をご参照ください。
- クエリ文
* | 選択 カウント (*) PVとして、 date_trunc('hour', __time__) AS time グループ化 時間 注文によって 時間 リミット 1000
- クエリおよび分析の結果
例 3
PVの数を5分間隔でグループ化します。
- クエリ文
date_trunc関数を使用すると、固定間隔のみに基づいて統計を測定できます。 間隔は、関数で指定する時間単位によって決まります。 カスタム間隔に基づいて統計を測定する場合は、数学的なモジュロ演算を実行してデータをグループ化することをお勧めします。 次のステートメントでは、% 300は、5分間隔でデータをグループ化するために数学的なモジュロ演算を実行することを指定します。
* | 選択 カウント (*) PVとして、 __time__-__time__ % 300 AS time グループ化 時間 リミット 1000
- クエリおよび分析の結果
例 4
request_method列とstatus列に基づいてPVの数をグループ化します。 GROUP BY GROUPING SETS句は、最初にリクエストメソッドごとにPVの数を計算し、次にステータスごとにPVの数を計算します。
- クエリ文
* | 選択 request_method, ステータス、 カウント (*) としてPV グループ化 GROUPING SETS (request_method、status)
- クエリおよび分析の結果
例 5
request_method列とstatus列に基づいてPVの数をグループ化します。 次のグループ化セットが生成されます。(null, null) 、(request_method, null) 、(null, status) 、および (request_method, status) 。 GROUP BY CUBE句は、各グループのPVの数を計算します。
- クエリ文
* | 選択 request_method、 ステータス、 カウント (*) としてPV グループ化 CUBE (request_method、ステータス)
- クエリおよび分析の結果
例6
request_method列とstatus列に基づいてPVの数をグループ化します。 以下のグループ化セットが生成される: (request_method, status) 、(request_method, null) 、および (null, null) 。 GROUP BY ROLLUP句は、各グループのPVの数を計算します。
- クエリ文
* | 選択 request_method、 ステータス、 カウント (*) としてPV グループ化 ROLLUP (request_method、ステータス)
- クエリおよび分析の結果