Example data:
I have table orders:
[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]
Expected output:
[order_id: 007, state: completed]
[order_id: 123, state: completed]
[order_id: 321, state: failed]
[order_id: 111, state: failed]
I have many values in table 'Orders' with the same order_id but different state. What I want to receive is list of orders without those 'failed' states IF there is another order in table 'orders' with same order_id and with different state than 'failed'.
I need something like:
Order.all.group(:state).take_only_first_value_if("COUNT(*) > 1")