2010-12-15 74 views
0

J'ai une table searches, qui a toutes les recherches qui sont exécutées sur notre site. Je veux tirer les recherches les plus populaires. Comme disons il ya 130 enregistrements avec la colonne de phrase étant "cheese", comment puis-je trier les résultats par nombre et les retourner dans l'ordre du plus au moins en utilisant l'enregistrement actif?Comment trier les résultats par nombre et retour dans l'ordre du plus au moins en utilisant l'enregistrement actif dans Rails

+0

Cette question SO pourrait donner un coup de main, question similaire: http://stackoverflow.com/ questions/4207889/when-doing-a-activerecordbase-count-how-do-i-order-by-count-desc – jyoseph

Répondre

2

Pris à partir de l'exemple I linked dans les commentaires ci-dessus.

Searches.find(:all, :select => '*, count(*) AS count, phrase', :group => 'phrase', :order => 'count DESC') 

Bien que je viens d'essayer sur mon propre sqlite db et il a bien fonctionné (rails 3)

Searches.count(:all, :group => 'phrase', :order => 'count(*) DESC') 
+0

J'ai fini par utiliser la nouvelle interface d'enregistrement active: 'Search.group ('phrase'). count' –

+0

Dûment noté! Merci! – jyoseph