0
我有一張名爲bets的表。我想根據多列的不同值返回記錄,然後在該記錄集上執行聚合查詢。此查詢不工作,當然,但應該說明我想要做的事:Rails - 在基於多列的不同記錄上運行聚合查詢
Bet.select('distinct user_id, event_id, bet_line_id, state, pick').
select("user_id, COUNT(CASE WHEN state = 'won' then 1 ELSE null END)
AS bets_won, COUNT(CASE WHEN state = 'lost' then 1 ELSE null END)
AS bets_lost, COUNT(CASE WHEN state = 'pushed' then 1 ELSE null END)
AS bets_pushed").group('user_id')
如果還不清楚我在問什麼,我會提供更說明性的例子。
使用Rails 3.2和Postgres,順便說一句。
Thx用於鏈接。我寧願避免添加另一個gem,除非沒有令人滿意的sql等價物。 – keruilin
在普通SQL中執行起來很簡單。該鏈接顯示了您需要的原始SQL示例。 –
我剛剛注意到我寫了上面的評論後生成的純sql。會給它一個鏡頭! – keruilin