计算斜率的数量,SQL中值变化的数量

Posted

技术标签:

【中文标题】计算斜率的数量,SQL中值变化的数量【英文标题】:Calculate number of slopes, number of value changes in SQL 【发布时间】:2021-04-22 09:10:44 【问题描述】:

我正在尝试编写代码来计算 SQL 中每个状态的斜率数、值更改数和持续时间

我有如下表格:

    | Module   | MeasTime          | MeasDate  | Variable| Value|
    | ---      | ---               | ---       | ---     | ---  |
    |binaryTask|2020-01-02 00:00:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 00:10:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 00:20:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 00:30:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 00:40:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 00:50:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 01:00:00|2020-01-02 |binaryVal|   0  |
    |binaryTask|2020-01-02 01:10:00|2020-01-02 |binaryVal|   0  |
    |binaryTask|2020-01-02 01:20:00|2020-01-02 |binaryVal|   0  |
    |binaryTask|2020-01-02 01:30:00|2020-01-02 |binaryVal|   0  |
    |binaryTask|2020-01-02 01:40:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 01:50:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 02:00:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 02:10:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 02:20:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 02:30:00|2020-01-02 |binaryVal|   1  |
    |binaryTask|2020-01-02 02:40:00|2020-01-02 |binaryVal|   0  |
 
 .
 .
 .

您知道如何在 SQL 中以良好的执行方式做到这一点吗?

提前致谢

【问题讨论】:

***.com/search?q=%5Bclickhouse%5DarraySplit 【参考方案1】:

我部分解决了一个问题:

Number of values changes:
Select Module, Variable, Count(Diff)
FROM (
    SELECT Module, Variable, runningDifference(Value) as Diff
    FROM 'XX' 
    WHERE Diff = -1 or Diff = 1
)
GROUP BY Module, Variable

希望,这是一个好方法..它适用于我的问题

但状态持续时间仍有问题...

【讨论】:

以上是关于计算斜率的数量,SQL中值变化的数量的主要内容,如果未能解决你的问题,请参考以下文章

计算列表中值的数量[重复]

51Nod - 1107 斜率小于0的连线数量

51Nod - 1107 斜率小于0的连线数量

51 Nod 1107 斜率小于0的连线数量

51nod 1107 1107 斜率小于0的连线数量

51 Nod 1107 斜率小于0的连线数量 (转换为归并求逆序数或者直接树状数组,超级详细题解!!!)