sql - 如何使用 'safe window' 为基于时间的元素创建 MySQL 查询?

标签 sql ruby-on-rails mysql

我不是 SQL 专家,远非如此。我正在编写一个 Rails 应用程序,我也是新手。我有桌面编程背景。

我的应用程序有一个数据表,其中一列是记录数据的时间。我想在每一行周围创建一个带有“安全窗口”的查询。我的意思是,它返回第一行,然后在 X 分钟内(基于时间记录的列)它不会返回任何数据,一旦 X 分钟结束,它将返回下一行。

例如:

ID | TimeLogged
1  | 3/5/2010 12:01:01
2  | 3/5/2010 12:01:50
3  | 3/5/2010 12:02:03
4  | 3/5/2010 12:10:30
5  | 3/5/2010 01:30:03
6  | 3/5/2010 01:31:05

有了 5 分钟的“安全窗口”,我想创建一个查询以返回:

1  | 3/5/2010 12:01:01
4  | 3/5/2010 12:10:30
5  | 3/5/2010 01:30:03

(它跳过了 12:01:50 和 12:02:03 项目,因为它们发生在第一个项目的 5 分钟内。)

另一个例子,我想返回 15 分钟的“安全窗口”:

1  | 3/5/2010 12:01:01
5  | 3/5/2010 01:30:03

也许我必须返回所有数据并自己解析?

最佳答案

可以在已呈现为十五分钟切片的列上使用 GROUP BY,但这并不能为您提供对此实例所需的精确控制。您所能期望的最好的结果是将它们分类到单独的十五分钟桶中,但这并不能保证两次之间有十五分钟的间隔。事实上,它们更有可能靠得更近,因为 11:59:59 和 12:00:01 将被视为两个不同的时间间隔。

基本上您只能使用更手动的方法,因为我不知道有任何 MySQL 操作可以满足您的要求。

如果您需要多次执行此操作,您可能希望在确定指定时间后标记数据库中的特定记录。

关于sql - 如何使用 'safe window' 为基于时间的元素创建 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3045664/

相关文章:

ios - 在 iPhone 上登录 Facebook。使用 Rails 后端进行身份验证 (Devise+Omniauth)

php - 在php中的url中传递变量

mysql - 访问包含冒号和连字符的 JSON key

sql - MySQL 查询匹配数组中的所有内容

ruby-on-rails - Cucumber 中的 RSpec 自定义匹配器到 DRY 依赖于实现的测试,这可能吗?

java - 将 java 变量传递给 sql (netbeans)

html - 在 erb 文件中设置虚线内联样式

php - 尝试获取非对象的属性: Using SELECT

java - 有没有办法将本地数据库添加到 netbeans java 项目包中?

sql - 如何存储稀疏邻接矩阵