groupe de + somme sur plusieurs colonnes dans rails 3
J'ai besoin d'obtenir une liste des lieux ordonnée par le nombre de photo que j'ai dans la DB pour ces emplacements, voici ma requête
Location.select(:city).group(:city).order("SUM(images_count) DESC").sum(:images_count)
Cela a fonctionné comme un charme, malheureusement, j'ai maintenant besoin d'ajouter de la province et du pays pour éviter les ambiguïtés de survenir, donc j'ai maintenant cette
Location.select(:city, :province, :country).group(:city, :province, :country).order("SUM(images_count) DESC").sum(:images_count)
Et cela ne fonctionne pas 🙁
Quelqu'un pourrait-il m'aider à sortir de cette requête?
OriginalL'auteur standup75 | 2011-01-31
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas très fier de ma solution, mais il fonctionne:
Des commentaires?
le groupement est l'enfer sur postgres! mais c'est la norme... Oui, mon appli est sur postgres, donc je confirme que cela fonctionne
Yup! C'est une grande réponse, merci!
OriginalL'auteur standup75
La somme méthode utiliser une seule colonne, lors du regroupement, essayez ceci :
Il peut être une meilleure façon.
J'espère que cela peut aider.
Ça marche... Mais, je n'ai pas la somme dans la suite, que j'aimerais avoir, je ne reçois Ville, Province, Pays, sum_images_count est manquant, savez-vous comment je pouvais le faire aussi?
Son étrange..vous devriez avoir le sum_images_count dans les attributs, avez-vous essayé ceci dans la console ?
oui, j'ai essayé cela sur la console avec les deux SQLlite et Postgres
Voir ce post sur les attributs virtuels stackoverflow.com/questions/582431/...
OriginalL'auteur jrichardlai