【问题标题】:Rails SQL Subquery not calculating correct in productionRails SQL子查询在生产中计算不正确
【发布时间】:2020-01-10 00:41:18
【问题描述】:

我有一个查询,它有一个执行计算的子查询。这是子查询的一部分:

SUM(
            CASE 
            WHEN s.partially_met = false AND s.fully_met = true 
            THEN 1 ELSE 0
            END
        )::float * 100.0 / COUNT(s.outcome_id)::float as fully_met_percent 

当我在开发或测试中运行整个查询时,它总是返回正确的结果。 当我运行生成上述内容的 rails 活动记录查询时,它总是在开发和测试中返回正确的结果。

当我直接对我的 heroku 暂存数据库运行 SQL 时,它会生成正确的结果。

但是,在我的 heroku 登台应用程序上,活动记录查询将始终返回 0.0。

如果我使用 ActiveRecord::Base.connection.execute 通过 rails 控制台为我的 heroku 登台应用程序运行 SQL,它将始终返回 0.0

任何人都可以解释为什么会发生这种情况或有什么想法可以看吗?

Rails 6.0.0 应用,Ruby 2.6.1

非常感谢,

【问题讨论】:

    标签: ruby-on-rails postgresql heroku ruby-on-rails-6


    【解决方案1】:

    首先,如果与开发不同,您的暂存架构可能会有所不同。 其次,您的分期数据可能与开发数据不同。

    【讨论】:

    • 谢谢。模式匹配,我已经完成了数据库转储并进行了检查。奇怪的是,原始 SQL 可以在暂存数据库上工作,但当它通过带有 activerecord::Base.connection.execute 的 rails 控制台传递时却不行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2018-04-24
    • 2017-04-06
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多