sql >> Databáze >  >> RDS >> PostgreSQL

GROUP BY a COUNT pomocí ActiveRecord

Distinct a Group By vám přinesou různé výsledky. Chcete-li dosáhnout očekávaných výsledků, budete chtít použít

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} 

Jak je vidět výše, skupina vrátí věci jako hash. Zatímco rozlišovací pouze vrátí celkový počet lidí, jak je vidět níže.

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


  1. Typ Dapper a Oracle Clob

  2. Uložená procedura volání SQL pro každý řádek bez použití kurzoru

  3. mezisoučet a součet pro řetězce

  4. PHP PDO připravené výpisy