Sql 独立于数据库的分组计数不相同”;“几天前”;在Rails 6中

Sql 独立于数据库的分组计数不相同”;“几天前”;在Rails 6中,sql,ruby-on-rails,postgresql,sqlite,ruby-on-rails-6,Sql,Ruby On Rails,Postgresql,Sqlite,Ruby On Rails 6,我想了解一个单词在24小时内出现的时间间隔有多少(注意,实际应用程序是不同的,而且更复杂,但这是等效的,不需要上下文) 我可以在Postgresql中使用如下SQL查询: 选择 单词 计数(不同的楼层(提取(从年龄开始的历元(创建时间))/86400))作为发生次数的不同天数 从单词的出现 逐字分组 我甚至编写了Rails代码来生成这个查询: WordOccurrence.select(:word).group(:word).distinct.count('FLOOR(EXTRACT(EPOC

我想了解一个单词在24小时内出现的时间间隔有多少(注意,实际应用程序是不同的,而且更复杂,但这是等效的,不需要上下文)

我可以在Postgresql中使用如下SQL查询:

选择
单词
计数(不同的楼层(提取(从年龄开始的历元(创建时间))/86400))作为发生次数的不同天数
从单词的出现
逐字分组
我甚至编写了Rails代码来生成这个查询:

WordOccurrence.select(:word).group(:word).distinct.count('FLOOR(EXTRACT(EPOCH FROM AGE)(created_at))/86400)
但是,它在Sqlite3中无法使用相同的代码

我想如果我投入一些时间,我可能也能找到一种方法使它在Sqlite3中工作,但我不知道如何使两者都工作。我看到CountAPI在过去的rails版本中有更多的特性,但我认为即使这样也不够,因为我的主要问题是时间戳处理和不计数。另外,我也不知道这些特性在Rails6中的位置

有没有办法使这两个适配器都能工作?如果不是,处理这些依赖于数据库的代码片段并选择正确的代码片段的最佳方法是什么

示例数据:

[
  { word: 'a', created_at: '2020-01-10 22:30' },
  { word: 'a', created_at: '2020-01-10 23:30' },
  { word: 'a', created_at: '2020-01-11 22:30' },
  { word: 'b', created_at: '2020-01-10 22:30' }
]
如果我在2020年4月8日对此进行查询,我将得到以下结果:

[
  { word: 'a', num_distinct_days_with_occurrence: 2 },
  { word: 'b', num_distinct_days_with_occurrence: 1 }
]

您能给出示例数据吗?添加了一些JSON格式的示例数据吗?您能给出示例数据吗?添加了一些JSON格式的示例数据