目的
GROUP BY TIME句は、集約関数のセットを使用して、時間の観点からグループ化されたデータを計算できるようにするSELECT文の機能強化です。グループ化はPTIテーブルに対して最適化されていますが、タイムコード列がUSING TIMECODE句で明示的に指定されているため、非PTIテーブルでもサポートされます。
構文図と説明では、GROUP BY TIME句に固有のSELECT構文の一部のみを扱っています。SELECTで使用できるその他の構文の詳細については、<Teradata Vantage™ SQLデータ操作言語、B035-1146>を参照してください。
構文
構文要素
- GROUP BY TIME
- 次に、GROUP BY TIME句の構文について説明します。
- timebucket duration
- 図に示されている時間単位のいずれかを使用して指定できる継続時間。期間には略語を使用できます。
時間単位 正式なフォームの例 省略表記 暦年 CAL_YEARS(4) 4cy 4cyear
4cyears暦月 CAL_MONTHS(5) 5cm 5cmonth
5cmonths暦日 タイム ゼロで特定された日の00:00:00.000000に始まり、23:59:59.999999に終わる24時間の期間。
CAL_DAYS(6) 6cd 6cday
6cdays週 WEEKS(3) 3w 3week
3weeks日 タイム ゼロから始まる24時間の期間。
DAYS(5) 5d 5day
5days時間 HOURS(4) 4h 4hr
4hrs
4hour
4hours分 MINUTES(23) 23m 23mins
23minute
23minutes秒 SECONDS(33) 33s 33sec
33secs
33second
33secondsミリ秒 MILLISECONDS(12) 12ms 12msec
12msecs
12millisecond
12millisecondsマイクロ秒 MICROSECONDS(10) 10us 10usec
10usecs
10microsecond
10microseconds - pos_int
- 最大値が32767の16ビットの正の整数。
- value_expression
value_expressionは、列または列を含む式(スカラー サブクエリーを除く)です。これらの式は、時間に関連しないグループ化のために使用されます。
1つ以上のカンマ区切り値の式がある可能性があります。
value_expressionは、関数から派生したビューの列への列参照であってはならず、順序付き分析または集約関数を含むことはできません。value_expressionはリテラルにすることはできません。
- pos_int
- 1 ~ 32767の範囲(両端含む)の正の整数。
- optional_clauses
- GROUP BY TIMEのオプションの句は、USING TIMECODEとFILLです。
- timestamp_date_col
- 非PTIテーブルのタイムコードとして機能する列式(オプションのテーブル名を指定)。
- seqno_col
- シーケンス番号である列式(オプションのテーブル名を指定)。PTIテーブルの場合、TD_SEQNOまたはシーケンス番号として機能するその他の列を指定できます。非PTIテーブルの場合、seqno_colはTD_SEQNOの役割を果たす列です(非PTIテーブルにはTD_SEQNOがないため)。
- fill
- FILL句を使用すると、欠落しているタイムバケット値の値を指定できます。次の変数と値はFILL句によって使用されます。詳細は、FILL句を使用して欠落タイムバケットを処理するを参照してください。
- NULLS
- 欠落しているタイムバケットは、すべての集約結果にNULL値を挿入してユーザーに返されます。
- numeric_constant
- Teradata Databaseがサポートする数値リテラル。欠落しているタイムバケットは、すべての集約結果に指定された定数値を挿入してユーザーに返されます。FILL句で指定されたデータ型が集約関数の入力データ型と互換性がない場合、エラーが報告されます。
- PREVIOUS
- PREV
- 欠落しているタイムバケットは、欠損値がない直前のタイムバケットの値が挿入された集約結果とともにユーザーに返されます。欠落しているタイムバケットの直前のタイムバケットも欠落している場合、両方のバケット、および欠損値があるその他の直前のタイムバケットは、欠損値のない最直近の値でロードされます。欠落しているタイムバケットに結果を含む先行のタイムバケットがない場合(例えば、タイムバケットがシリーズの最初のものである場合、またはシリーズ全体の先行するタイムバケットがすべて欠落している場合)、欠落しているタイムバケットは、すべての集約結果にNULLの値を挿入してユーザーに返されます。PREVIOUSの代わりに、略語のPREVが使用されることがあります。
- NEXT
- 欠落しているタイムバケットは、非欠損値を持つ直後のタイムバケットの値が挿入された集約結果とともにユーザーに返されます。欠落しているタイムバケットの直後のタイムバケットも欠落している場合、両方のバケット、および欠損値があるその他の直後のタイムバケットは、欠損値のない最後続の値でロードされます。欠落しているタイムバケットに結果を含む後続のタイムバケットがない場合(例えば、タイムバケットがシリーズの最後のものである場合、またはシリーズ全体の後続するタイムバケットがすべて欠落している場合)、欠落しているタイムバケットは、すべての集約結果にNULLの値を設定してユーザーに返されます。