示例数据:
我有餐桌订单:
[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]
我在表'Orders'中有许多具有相同order_id但状态不同的值。我要接收的是没有表“ failed”状态的订单列表,如果表“ orders”中还有另一个订单具有相同order_id且状态与“ failed”不同的订单。
我需要类似的东西:
Order.all.group(:state).take_only_first_value_if("COUNT(*) > 1")
使用postgreSQL(snippet):
Order.order("order_id, state = 'failed'").select("DISTINCT ON(order_id) *")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句