すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:集計命令

最終更新日:Jun 23, 2026

集計命令は、ログのクエリ結果に対して統計分析、ソート、および行数制限を実行します。

stats

stats 命令は、COUNTSUMAVG などの SQL 集計関数と同様に、ログの統計分析を実行します。ログデータ内の特定のフィールドをグループ化して集計します。

重要
  • この命令は、Logstore でのクエリと分析にのみ使用されます。データ変換、構造化プロセス言語 (SPL) ルール消費、Ingest Processors、または Logtail 設定などのシナリオには適用されません。

  • デフォルトでは、stats 命令は最初の 100 件の集計結果を返します。より多くの結果を返すには、limit 命令を使用してください。

構文

stats <output>=<aggOperator> by <group>,[<group>...]

パラメータ

パラメータ

タイプ

必須

説明

output

String

はい

統計結果フィールドのエイリアスを指定します。

aggOperator

SQLExp

はい

次の集計関数がサポートされています。

  • count

  • count_if

  • min

  • max

  • sum

  • avg

  • skewness

  • kurtosis

  • approx_percentile

  • approx_distinct

  • bool_and

  • bool_or

  • every

  • arbitrary

  • array_agg

group

String

いいえ

集計のディメンションを指定します。これは SQL の GROUP BY フィールドと同様です。

  • 例 1: ip ごとにアクセスログの pv を計算します。

    • SPL ステートメント

      * | stats pv=count(*) by ip
    • 入力データ

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • 出力データ

      ip: 192.168.1.2
      pv: 1
      
      ip: 192.168.1.1
      pv: 2
  • 例 2: accesslog 内のすべての IP アドレスの 最小/最大 レイテンシを計算します。

    • SPL ステートメント

      * 
      | extend latencyMs=cast(latencyMs as bigint)
      | stats minLatencyMs=min(latencyMs), maxLatencyMs=max(latencyMs) by ip
    • 入力データ

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • 出力データ

      ip: 192.168.1.2
      minLatencyMs: 10
      maxLatencyMs: 10
      
      ip: 192.168.1.1
      minLatencyMs: 10
      maxLatencyMs: 20
  • 例 3: アクセスログの合計 pv を計算します。

    • SPL ステートメント

      * | stats pv=count(*)
    • 入力データ

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • 出力データ

      pv: 3

sort

ソート命令は、フィールド値または統計結果に基づいて、クエリ結果を昇順 (asc) または降順 (desc) で並べ替えます。

重要

この命令は、Logstore でのクエリと分析にのみ使用されます。データ変換、SPL ルール消費、Ingest Processors、または Logtail 設定などのシナリオには適用されません。

構文

sort <field> [asc/desc] ,(<field> [asc/desc])

パラメータ

パラメータ

タイプ

必須

説明

field

String

はい

ソートの基準となるフィールドを指定します。次のフィールドタイプがサポートされています。

  • 元のログフィールド、たとえば status や request_time など。

  • count(*)avg(response_time) などの統計フィールド。

  • @timestamp などの時間フィールド。

asc/desc

String

いいえ

  • asc: 昇順でソートします (デフォルト)。

  • desc: 降順でソートします。

accessloglatencyMs でソートします。

  • SPL ステートメント

    * 
    | extend latencyMs=cast(latencyMs as bigint) 
    | sort latencyMs desc
  • 入力データ

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • 出力データ

    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
    
    ip: 192.168.1.1
    latencyMs: 10

limit

limit 命令は、クエリ結果として返されるログの行数を制限し、過度に大きな結果セットによるパフォーマンスの問題を防ぎます。

重要
  • この命令は、Logstore でのクエリと分析にのみ使用されます。データ変換、SPL ルール消費、Ingest Processors、または Logtail 設定などのシナリオには適用されません。

  • sort 命令を使用して照合順序を指定しない場合、limit 命令の出力はランダムな順序になります。これは、保存時にログの自然順が保証されないためです。

構文

limit (<offset>,) <size>

パラメータ

パラメータ

タイプ

必須

説明

offset

Integer

いいえ

最初の offset 行をスキップします。

size

Integer

はい

返される行数の上限。

アクセスログを latencyMs フィールドでソートし、最初の 1 行を取得します。

  • SPL ステートメント

    * 
    | extend latencyMs=cast(latencyMs as bigint) 
    | sort latencyMs
    | limit 1
  • 入力データ

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • 出力データ

    ip: 192.168.1.1
    latencyMs: 10