sql >> Databasteknik >  >> RDS >> PostgreSQL

GROUP BY och COUNT med hjälp av ActiveRecord

Distinct och Group By kommer att ge dig olika resultat. För att få de resultat du förväntar dig vill du använda

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} 

Sett ovan kommer gruppen att returnera saker som en hash. Medan distinkt returnerar bara antalet personer totalt, se nedan.

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


  1. Kan denna sql-fråga förenklas?

  2. Installation av RODBC/ROracle-paket på OS X Mavericks

  3. hur väljer man en rad där en av flera kolumner är lika med ett visst värde?

  4. mysql sök efter en catid i ett textfält