ruby-on-rails - 从事件记录分组中只取一个值 - ruby​​ on rails

标签 ruby-on-rails ruby

示例数据:

我有餐 table 订单:

[order_id: 007, state: completed]
[order_id: 123, state: completed]
[order_id: 007, state: failed]
[order_id: 321, state: failed]
[order_id: 111, state: failed]
[order_id: 111, state: failed]

预期输出:

[order_id: 007, state: completed]
[order_id: 123, state: completed]
[order_id: 321, state: failed]
[order_id: 111, state: failed]

我在“订单”表中有许多具有相同 order_id 但状态不同的值。我想收到的是没有那些“失败”状态的订单列表,如果表“订单”中有另一个订单具有相同的 order_id 并且状态不同于“失败”。

我需要这样的东西:

Order.all.group(:state).take_only_first_value_if("COUNT(*) > 1")

最佳答案

使用 postgreSQL ( snippet ):

Order.order("order_id, state = 'failed'").select("DISTINCT ON(order_id) *")

关于ruby-on-rails - 从事件记录分组中只取一个值 - ruby​​ on rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514882/

相关文章:

mysql - Rails 查询/范围 : exclude objects according to attribute of joined model

ruby-on-rails - 空 gem 列表,但可以使用 rails --version

sql - 是否可以使用范围方法生成 SQL `OR` 子句?

ruby-on-rails - Ruby on Rails :-Rails s and Rails Server commands all create new projects

Ruby Builder Gem - 动态设置节点名称

ruby-on-rails - Rails 3.0.10 AJAX 问题,create.js.erb 文件

ruby-on-rails - Amazon Elastic Beanstalk - Ruby (Rack) 应用程序无法启动

Ruby 私有(private) attr_accessor 和意外的 nil

ruby-on-rails - 使用 sidekiq 只执行众多重复作业之一?

java - 从 Java Web 应用程序调用 ruby​​ 库