ORDER BY 句を使用すると、クエリ結果を 1 つまたは複数のフィールドでソートできます。構文は次のとおりです。

[ORDER BY {field_name | alias} [ASC | DESC] [, {field_name | `alias`} [ASC | DESC]]...]

順序付けを制御するルールを次に示します。

  • ソート順の昇順(ASC)または降順(DESC)は、フィールドごとに適用されます。指定しない場合、昇順(ASC)がデフォルトになります。
  • ORDER BY は、SELECT 句で指定されたフィールドまたはエイリアスでサポートされます。
  • ORDER BY 句で使用されるエイリアスにスペースやその他の特殊文字が含まれている場合は、逆引用符で囲む必要があります。
  • ORDER BY は、単一値のメトリック関数と単一値の数学式で機能します。ORDER BY は、パーセンタイルまたは統計情報では使用できません。
  • ネストされたフィールドでの ORDER BY またはネストされたフィールドで動作するメトリック集約はサポートされていません。ネストされたフィールドとは、segments.errorList.errorTypebtdata.estimatedtime. など、名前に「.」が含まれる任意のフィールドです。

メトリック関数とバケット関数の順序付け機能には次のものが含まれます。

  • ORDER BY を使用して、バケット関数でバケット対象フィールドのバケットに順序を付けることができます。たとえば、次の表の「series 集約:series バケットのキーに基づいた順序付け」を参照してください。
  • ORDER BY は、バケット関数に続くメトリック関数(フィルタ処理されたメトリック関数を含む)で使用できます。メトリック値による順序付けにより、結果のバケットの順序が決まります。メトリック関数は、次のようにエイリアス化し、そのエイリアスによって参照する必要があります。

    SELECT transactionName, avg(responseTime) AS averageResponseTime FROM transactions ORDER BY averageResponseTime
  • 暗黙的な GROUP BY  機能を提供する関数に対して複合順序付けを指定できます。
  • series 関数に対しては順序付けを 1 つ定義できますが、range 関数に対しては順序付けは使用できません。
  • ORDER BY は、フィールドの数学式は受け入れますが、メトリック関数の数学式は受け入れません。数学式の値が NULL の場合、結果の末尾に昇順で並べられます。以下は無効なクエリです。
    SELECT transactionName, max(discountValue) / max(cartTotal) AS ratio FROM transactions ORDER BY ratio

ORDER BY 句の例

次の結果の場合クエリ
集約なしのクエリの順序付け。SELECT field_name  FROM event_type ORDER BY field_name ASC
Group By :用語の辞書的な順序による順序付け。ORDER BY 句に含まれるフィールドは、クエリ自体と同じ順序にする必要があります。SELECT field_name, count(*)  FROM event_type ORDER BY field_name DESC
タイムスタンプの範囲のソートされたセットを返す。

SELECT series(eventTimestamp, 10m), count(*) FROM transactions ORDER BY eventTimestamp DESC

series 集約:series バケットのキーに基づいた順序付け。SELECT series(salary, 20000), count(salary) FROM event_type ORDER BY salary DESC
日付の series 集約:series バケットのキーの日付値に基づいた順序付け

SELECT series(eventTimestamp, '1h'), count(eventTimestamp) FROM transactions ORDER BY eventTimestamp

エイリアスによる順序付け。

SELECT responseTime AS RT FROM transactions ORDER BY RT

エイリアス化された数学式による順序付け。

SELECT discountValue / cartTotal AS ratio FROM transactions ORDER BY ratio