在窗口函数中对具有相等值的行进行计数

迷你库珀246

我在SQLite数据库中有一个时间序列,想对其进行分析。

时间序列的重要部分由具有不同但并非唯一的字符串值的列组成。我想做这样的事情:

Value  concat  countValue

A      A       1
A      A,A     1
B      A,A,B   1
B      A,B,B   2
B      B,B,B   3
C      B,B,C   1
B      B,C,B   2

我不知道如何获取countValue列。它应该计算该分区的所有值等于当前行的值。

我试过了,但是它只计算分区中的所有值,而不是等于该行值的值。

SELECT 
    Value,
    group_concat(Value) OVER wind AS concat,
    Sum(Case When Value Like Value Then 1 Else 0 End) OVER wind AS countValue
FROM TimeSeries
WINDOW
    wind AS (ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
ORDER BY 
    date
;

该查询还受到以下因素的限制:

  1. 该查询应使用任意数量的唯一值
  2. 该查询应适用于任何分区大小(n个前置行和当前行之间的行)

仅使用SQL是否有可能?

专线小巴

这是使用字符串函数的一种方法:

select 
    value,
    group_concat(value) over wind as concat,
    (
        length(group_concat(value) over wind) - length(replace(group_concat(value) over wind, value, ''))
    ) / length(value) cnt_value
from timeseries
window wind as (order by date rows between 2 preceding and current row)
order by date;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在不同的字段中查找具有相等值的记录?

如何选择列中具有相等值的行

如何合并列表中具有相等值的字典并串联不相等的值?

Pandas Groupby比较Excel中带有子行的2列中的计数相等值

列中的相等值

查询优化以匹配具有相等值的节点

Javascript:具有明显相等值的断言导致不同

如何合并具有相等值的单元格

选择列具有相等值的行的分区

从具有相等值的几个数据框中删除行

在列表中查找某些属性具有相等值的对象

计算两个指定列中具有相等值的行数

如何删除在Matlab的指定列中矩阵A与矩阵B具有相等值的那些行?

如何选择列中具有相等值的线并保持此特性

熊猫-在迭代中使用具有相等值的行中的值

如何按Excel或GSheet中第二列的值对第一列中具有相等值的列表进行排序?

将数字平均分配到具有相等值的n个元素的数组中

列表Java中的相等值

如何编写 Rails SQL 查询以查找所有子项具有相等值的对象

Postgres选择数组具有相等值但没有特定顺序的地方

MySQL“大于”条件有时返回具有相等值的行

如何合并列表中具有相等值的字典并串联不相等的值并使其他字段保留在字典中?

如何使用 ngrx 和 typescript 连接具有相等值的属性上的列表项

在laravel查询构建器中选择具有2列相等值的行

在mysql中找到三个以上具有相等值的列

SQL查询选择具有2列相等值的行

在mysql上指定一个最多具有两个相等值的字段

根據唯一條目拆分具有相等值的行的值

Pandas Dataframe 根据具有相等值的两列删除行