- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个带有 created_at
时间戳的事件表。我想将它们分成相隔 N 秒的事件组,特别是 130 秒。然后对于每个组,我只需要知道最低时间戳和最高时间戳。
这是一些示例数据(忽略时间戳的格式,它是一个日期时间字段):
------------------------| id | created_at |------------------------| 1 | 2013-1-20-08:00 || 2 | 2013-1-20-08:01 || 3 | 2013-1-20-08:05 || 4 | 2013-1-20-08:07 || 5 | 2013-1-20-08:09 || 6 | 2013-1-20-08:12 || 7 | 2013-1-20-08:20 |------------------------
And what I would like to get as a result is:
-------------------------------------| started_at | ended_at |-------------------------------------| 2013-1-20-08:00 | 2013-1-20-08:01 || 2013-1-20-08:05 | 2013-1-20-08:09 || 2013-1-20-08:12 | 2013-1-20-08:12 || 2013-1-20-08:20 | 2013-1-20-08:20 |-------------------------------------
I've googled and searched every possible way of phrasing that question and experimented for some time, but I can't figure it out. I can already do this in Ruby, I'm just trying to figure out if it's possible to move this to the database level. If you're curious or it's easier to visualize, here's what it looks like in Ruby:
groups = SortedSet[*events].divide { |a,b| (a.created_at - b.created_at).abs <= 130 }
groups.map do |group|
{ started_at: group.to_a.first.created_at, ended_at: group.to_a.last.created_at }
end
有谁知道如何在 SQL 中执行此操作,特别是 PostgreSQL?
最佳答案
我认为你希望在与前一个的差异大于 130 秒时开始每个新分组。您可以使用滞后和日期算法来确定分组的开始位置。然后做一个累加求和得到分组:
select Grouping, min(created_at), max(created_at)
from (select t.*, sum(GroupStartFlag) over (order by created_at) as Grouping
from (select t.*,
lag(created_at) over (order by created_at) as prevca,
(case when extract(epoch from created_at - lag(created_at) over (order by created_at)) < 130
then 0 else 1
end) as GroupStartFlag
from t
) t
) t
group by Grouping;
最后一步是通过“分组”标识符进行聚合以获得最早和最晚的日期。
关于sql - 如何根据 SQL 中行之间列的差异进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18199770/
我想在 scilab 中绘制 limacon,我有这个方程需要处理: 我知道r>0和l>0 当我编译以下代码时,我在第 5 行收到此错误: Inconsistent row/column dimens
我试图更好地了解行和行集在 PeopleCode 中的用途?我读完了PeopleBooks,但仍然觉得我没有很好的理解。我希望对这些与应用程序引擎程序相关的内容有更多的了解。也许通过一个例子可能会有所
我有 4 列的行,每列都有一个标题和一些文本。大多数列都有相似数量的文本,将其列中的按钮向下按以匹配其余列。但是,一列的文本较少,并且没有将按钮向下推得足够远。 有没有办法将按钮对齐到行的底部?我想实
我有这个模型 summary = models.TextField() 但我只想有 4 行和 15 列。 此外,如果我这样做,我是否需要重新安装数据库。 最佳答案 TextField
我想在 iPhone 中创建 SSL 服务器套接字的客户端,但我在 iPhone 中找不到任何 API。我有带密码的有效证书文件 最佳答案 你看过OpenSSL了吗? ? 关于iphone - iPh
For Each cell In sheets(1).Range("A50:A606") For Each cell2 In sheets(2).Range("EX2:ACB2") cell2.
这是我的矩阵 [,1] [,2] M -1 -5 T 8 -4 W -3 9 Th
我有一个全局char *在运行时,重新声明为指向声明为 way 的二维数组的指针。 : char (*A)[N][M] = malloc(sizeof(char[BUF_16][N][M])); 然后
我是一名优秀的程序员,十分优秀!