ClickHouse/docs/ja/sql-reference/aggregate-functions/reference/intervalLengthSum.md
2024-11-18 11:58:58 +09:00

5.6 KiB
Raw Blame History

slug sidebar_position sidebar_label title
/ja/sql-reference/aggregate-functions/reference/intervalLengthSum 155 intervalLengthSum intervalLengthSum

すべての範囲(数軸上のセグメント)の合併の総長を計算します。

構文

intervalLengthSum(start, end)

引数

:::note 引数は同じデータ型である必要があります。そうでない場合、例外がスローされます。 :::

戻り値

  • すべての範囲(数軸上のセグメント)の合併の総長。引数の型に応じて、戻り値は UInt64 または Float64 型になります。

  1. 入力テーブル:
┌─id─┬─start─┬─end─┐
│ a  │   1.1 │ 2.9 │
│ a  │   2.5 │ 3.2 │
│ a  │     4 │   5 │
└────┴───────┴─────┘

この例では、Float32 型の引数が使用されています。関数は Float64 型の値を返します。

結果は、インターバル [1.1, 3.2] [1.1, 2.9][2.5, 3.2] の合併)と [4, 5] の長さの合計です。

クエリ:

SELECT id, intervalLengthSum(start, end), toTypeName(intervalLengthSum(start, end)) FROM fl_interval GROUP BY id ORDER BY id;

結果:

┌─id─┬─intervalLengthSum(start, end)─┬─toTypeName(intervalLengthSum(start, end))─┐
│ a  │                           3.1 │ Float64                                   │
└────┴───────────────────────────────┴───────────────────────────────────────────┘
  1. 入力テーブル:
┌─id─┬───────────────start─┬─────────────────end─┐
│ a  │ 2020-01-01 01:12:30 │ 2020-01-01 02:10:10 │
│ a  │ 2020-01-01 02:05:30 │ 2020-01-01 02:50:31 │
│ a  │ 2020-01-01 03:11:22 │ 2020-01-01 03:23:31 │
└────┴─────────────────────┴─────────────────────┘

この例では、DateTime 型の引数が使用されています。関数は秒単位の値を返します。

クエリ:

SELECT id, intervalLengthSum(start, end), toTypeName(intervalLengthSum(start, end)) FROM dt_interval GROUP BY id ORDER BY id;

結果:

┌─id─┬─intervalLengthSum(start, end)─┬─toTypeName(intervalLengthSum(start, end))─┐
│ a  │                          6610 │ UInt64                                    │
└────┴───────────────────────────────┴───────────────────────────────────────────┘
  1. 入力テーブル:
┌─id─┬──────start─┬────────end─┐
│ a  │ 2020-01-01 │ 2020-01-04 │
│ a  │ 2020-01-12 │ 2020-01-18 │
└────┴────────────┴────────────┘

この例では、Date 型の引数が使用されています。関数は日数単位の値を返します。

クエリ:

SELECT id, intervalLengthSum(start, end), toTypeName(intervalLengthSum(start, end)) FROM date_interval GROUP BY id ORDER BY id;

結果:

┌─id─┬─intervalLengthSum(start, end)─┬─toTypeName(intervalLengthSum(start, end))─┐
│ a  │                             9 │ UInt64                                    │
└────┴───────────────────────────────┴───────────────────────────────────────────┘