posso ottenere la raccolta di account che hanno più di un utente:rotaie 3 ottenere il conteggio dei record che hanno più di un record associati (has_many)
Account.group('accounts.id HAVING count(users.id) > 1').joins(:users)
Ma, non appena io chiamo. contare su quell'oggetto, ottengo una grande esplosione:
(0,3 ms) SELECT COUNT (*) AS count_all, accounts.id conteggio HAVING (users.id)> 1 AS account_id_having_count_users_id_1 DA "account" INNER JOIN "users" ON "users". "Account_id" = "account". "Id" GROUP BY accounts.id conteggio HAVING (users.id)> 1 ActiveRecord :: StatementInvalid: PG :: Errore: ERRORE: errore di sintassi in o nei pressi di "AS" LINEA 1: ... unt_all, accounts.id CHE HA count (users.id)> 1 AS conti ...
Sembra che in Postgres, la query reale che voglio è:
select count(*) from (SELECT accounts.id FROM "accounts" INNER JOIN "users" ON "users"."account_id" = "accounts"."id" GROUP BY accounts.id HAVING count(users.id) > 1) as a;
Come posso ottenere activerecord per generare questa (o una query comparabile)?
ma che richiede rubino iterazione sulla raccolta e facendo un confronto su ogni value-- e conta quindi chiamando su questo. Sto cercando un modo per fare il conteggio del database. – patrick