tencent cloud

Cloud Log Service

GROUP BY 構文

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-12 14:32:15
AI翻訳・品質チェック済み
GROUP BY構文は、集計関数と組み合わせて、1つまたは複数の列に基づいて分析結果をグループ化して統計を取るために使用されます。

構文形式

* | SELECT 列名, 集計関数 GROUP BY [ 列名 | 別名 | 番号 ]
注意
SQL文において、GROUP BY構文を使用した場合、SELECT文を実行する際には、GROUP BYの列または集計関数のみを選択でき、GROUP BY以外の列を選択することはできません。例えば、* | SELECT status, request_time, COUNT(*) AS PV GROUP BY statusは不正な分析文です。なぜなら、request_timeがGROUP BYの列ではないからです。
GROUP BY構文は、列名、別名、または番号によるグループ化をサポートしています。詳細は以下の表の通りです:
パラメータ
説明
列名
ログフィールド名または集計関数の計算結果列で、単一列または複数列をサポートします。
別名
ログフィールドまたは集計関数の計算結果の別名に基づいてグループ化します。
番号
SELECT文における列の番号(1から始まります)。
例えば、status列の番号は1であるため、以下の2つの文は同等の関係になります。
* | SELECT status, count(*) AS PV GROUP BY status
* | SELECT status, count(*) AS PV GROUP BY 1
集計関数
GROUP BY構文は、MIN、MAX、AVG、SUM、COUNTなどの集計関数と組み合わせて使用されることが一般的です。詳細については、集計関数を参照してください。

構文例

異なるステータスコードごとのアクセス回数を統計します:
* | SELECT status, count(*) AS pv GROUP BY status
1分ごとの時間粒度に基づいて、PVの時間経過に伴う変化傾向を計算します:
* |
SELECT
date_trunc(
'minute',
cast(__TIMESTAMP__ as timestamp)
) AS dt,
count(*) AS pv
GROUP BY
dt
ORDER BY
dt
LIMIT
10
__TIMESTAMP__フィールドはCLSの予約フィールドであり、時間列を表します。dtはdate_trunc('minute', cast(__TIMESTAMP__ as timestamp))の別名であり、時間を分単位に切り捨てることを表します。date_trunc()関数の詳細については、時間切り捨て関数をご参照ください。
説明
limit 10は最大10行の結果を取得することを表します。LIMIT構文を使用しない場合、デフォルトで100行の結果を取得します。
インデックス設定で、任意のフィールドの統計機能を有効にすると、CLSは__TIMESTAMP__フィールドの統計機能を自動的に有効にします。
5分ごとの時間粒度に基づいて、PVおよびUVの時間経過に伴う変化傾向を計算します: date_trunc()関数は固定時間間隔でのみ統計できるため、histogram関数を使用してカスタム時間間隔で統計できます。
* |
SELECT
histogram(
cast(__TIMESTAMP__ as timestamp),
interval 5 minute
) as dt,
count(*) as pv,
count(
distinct(remote_addr)
) as uv
GROUP BY
dt
ORDER BY
dt


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック