| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| --> |
| |
| # Continuous Interval Functions |
| |
| The continuous interval functions are used to query all continuous intervals that meet specified conditions. |
| They can be divided into two categories according to return value: |
| 1. Returns the start timestamp and time span of the continuous interval that meets the conditions (a time span of 0 means that only the start time point meets the conditions) |
| 2. Returns the start timestamp of the continuous interval that meets the condition and the number of points in the interval (a number of 1 means that only the start time point meets the conditions) |
| |
| | Function Name | Input TSDatatype | Parameters | Output TSDatatype | Function Description | |
| |-------------------|--------------------------------------|-----------------------------------------------------------------------------------------------|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |
| | ZERO_DURATION | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:Optional with default value `0L`</br>`max`:Optional with default value `Long.MAX_VALUE` | Long | Return intervals' start times and duration times in which the value is always 0(false), and the duration time `t` satisfy `t >= min && t <= max`. The unit of `t` is ms | |
| | NON_ZERO_DURATION | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:Optional with default value `0L`</br>`max`:Optional with default value `Long.MAX_VALUE` | Long | Return intervals' start times and duration times in which the value is always not 0, and the duration time `t` satisfy `t >= min && t <= max`. The unit of `t` is ms | |
| | ZERO_COUNT | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:Optional with default value `1L`</br>`max`:Optional with default value `Long.MAX_VALUE` | Long | Return intervals' start times and the number of data points in the interval in which the value is always 0(false). Data points number `n` satisfy `n >= min && n <= max` | |
| | NON_ZERO_COUNT | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:Optional with default value `1L`</br>`max`:Optional with default value `Long.MAX_VALUE` | Long | Return intervals' start times and the number of data points in the interval in which the value is always not 0(false). Data points number `n` satisfy `n >= min && n <= max` | |
| |
| ##### Demonstrate |
| Example data: |
| ``` |
| IoTDB> select s1,s2,s3,s4,s5 from root.sg.d2; |
| +-----------------------------+-------------+-------------+-------------+-------------+-------------+ |
| | Time|root.sg.d2.s1|root.sg.d2.s2|root.sg.d2.s3|root.sg.d2.s4|root.sg.d2.s5| |
| +-----------------------------+-------------+-------------+-------------+-------------+-------------+ |
| |1970-01-01T08:00:00.000+08:00| 0| 0| 0.0| 0.0| false| |
| |1970-01-01T08:00:00.001+08:00| 1| 1| 1.0| 1.0| true| |
| |1970-01-01T08:00:00.002+08:00| 1| 1| 1.0| 1.0| true| |
| |1970-01-01T08:00:00.003+08:00| 0| 0| 0.0| 0.0| false| |
| |1970-01-01T08:00:00.004+08:00| 1| 1| 1.0| 1.0| true| |
| |1970-01-01T08:00:00.005+08:00| 0| 0| 0.0| 0.0| false| |
| |1970-01-01T08:00:00.006+08:00| 0| 0| 0.0| 0.0| false| |
| |1970-01-01T08:00:00.007+08:00| 1| 1| 1.0| 1.0| true| |
| +-----------------------------+-------------+-------------+-------------+-------------+-------------+ |
| ``` |
| |
| Sql: |
| ```sql |
| select s1, zero_count(s1), non_zero_count(s2), zero_duration(s3), non_zero_duration(s4) from root.sg.d2; |
| ``` |
| |
| Result: |
| ``` |
| +-----------------------------+-------------+-------------------------+-----------------------------+----------------------------+--------------------------------+ |
| | Time|root.sg.d2.s1|zero_count(root.sg.d2.s1)|non_zero_count(root.sg.d2.s2)|zero_duration(root.sg.d2.s3)|non_zero_duration(root.sg.d2.s4)| |
| +-----------------------------+-------------+-------------------------+-----------------------------+----------------------------+--------------------------------+ |
| |1970-01-01T08:00:00.000+08:00| 0| 1| null| 0| null| |
| |1970-01-01T08:00:00.001+08:00| 1| null| 2| null| 1| |
| |1970-01-01T08:00:00.002+08:00| 1| null| null| null| null| |
| |1970-01-01T08:00:00.003+08:00| 0| 1| null| 0| null| |
| |1970-01-01T08:00:00.004+08:00| 1| null| 1| null| 0| |
| |1970-01-01T08:00:00.005+08:00| 0| 2| null| 1| null| |
| |1970-01-01T08:00:00.006+08:00| 0| null| null| null| null| |
| |1970-01-01T08:00:00.007+08:00| 1| null| 1| null| 0| |
| +-----------------------------+-------------+-------------------------+-----------------------------+----------------------------+--------------------------------+ |
| ``` |