只是想问一下使用rails我的问题的查询是什么,我使用PostgreSQL作为数据库,让我们说我有两个列,一个是start_date和end_date,我只想得到当我减去两列时,具有相同天差的记录然后计算它。例如:
start_date | end_date
2017-06-01 | 2017-06-03
2017-07-25 | 2017-07-31
2017-09-05 | 2017-09-07
对于这个例子,我有三个记录,所以当你得到这三个记录的差异时,这将是结果
第一行 2
第二行 6
第三行 2
所以我只需要得到的记录是那两个差异为2天的记录
答案 0 :(得分:2)
DB:PostgreSQL
您可以这样使用:
TableName.select("DATE_PART('day', end_date - start_date) as diff, count(*) as total").group("diff")
答案 1 :(得分:1)
你可以这样做
示例:
Model.all.each do |d|
date = (d.end_date - d.start_date).to_i
Model.where.not(id: d.id).each do |diff|
date_diff = (diff.end_date - diff.start_date).to_i
if (date==date_diff)
puts date
end
end
end
输出取决于您的end_date
和start_date
日期格式。我假设格式为"2017-06-15 10:00:12"
答案 2 :(得分:0)
尝试代码:
diff = []
Model.select{|d| diff << (u.end_date - u.start_date).to_i }
max = diff.uniq.max_by{ |i| diff.count(i) }
result = Model.where("end_date - start_date = ?", max.to_s)
puts result