GROUP BY TIMEクエリーが実行されると、2つのシステム仮想列、$TD_TIMECODE_RANGEと$TD_GROUP_BY_TIMEが生成され、ユーザーはこれらにアクセスできます。
$TD_GROUP_BY_TIMEと$TD_TIMECODE_RANGEは、仮想列と同じスコープ内にGROUP BY TIME句がある場合にのみ存在します。仮想列を使用するときは、時系列でサポートされる集約関数を使用する必要があります。ただし、これらのシステム仮想列は、時系列でサポートされる集約関数への引数として使用することはできません。
仮想列は、SELECT句およびORDER BY句で使用できます。これらの句では、仮想列は、UDFに渡されるものを含む任意の式やキャスト式(埋め込みのタイムスタンプに関連付けられた形式を変更できるようにするため)で使用できます。ただし、仮想列は、WHERE句、HAVING句、またはGROUP BY TIME句では使用できません。仮想列は、時系列テーブルの列名にすることはできません。
GROUP BY TIMEが制限のない時間(GROUP BY TIME(*)など)で使用されている場合、システム仮想列には次のルールが適用されます。
- $TD_GROUP_BY_TIME:これには1つのタイムバケットしかないため、値は常に1です。
- $TD_TIMECODE_RANGE:これはグループについて読み取られた最初と最後のタイムコード値で構成されます。