PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

GROUP BY e COUNT utilizzando ActiveRecord

Distinct e Group By ti daranno risultati diversi. Per ottenere i risultati che ti aspetti ti consigliamo di utilizzare

Person.group(:name).count
(1.2ms)  SELECT COUNT(*) AS count_all, name AS name FROM "people" GROUP BY "people"."name"
=> {"Dan"=>3, "Dave"=>2, "Vic"=>1} 

Come visto sopra, il gruppo restituirà le cose come hash. Mentre distinto restituisce solo il numero di persone in totale, visto di seguito.

Person.distinct(:name).count
(0.4ms)  SELECT DISTINCT COUNT(DISTINCT "people"."id") FROM "people"
=> 6