Szukanie najczęściej występujących wpisów

Cześć.

Zaczynam przygodę z Railsami. Mam model “Search”, a w nim pole “query”. Potrzebuję pobrać np. 5 najczęściej występujących wpisów wg. pola “query”. Jest taka możliwośc w ActiveRecord?

no to zwykle zapytanie, czyli nie AR tylko SQL się kłania:

np coś takiego

p = Gallery.all(:select => ‘who, COUNT(who) AS ile’, :group => ‘who’, :order => ‘ile DESC’, :limit => 5)

Da ci to coś takiego
±--------±----+
| who | ile |
±--------±----+
| jacek | 26 |
| gotar | 11 |
| Kajka | 8 |
| storm | 5 |
| labondz | 3 |
±--------±----+

no i zanim zaczniesz zabawe z rails naucz się chodź by podstaw SQL.

Znasz trochę SQL?
Jeśli nie to na początek polecam przeczytanie dobrej książki na jego temat, a dopiero później wejście w świat RoRa :slight_smile:
to co chcesz możesz osiągnąć np. w taki sposób:

SELECT query FROM searches GROUP BY query ORDER BY COUNT(query) DESC LIMIT 0,5
teraz wchodzisz tu: http://apidock.com/rails/ActiveRecord/Base/find/class
czytasz od deski do deski, i przekładasz powyższe zapytanie na odpowiednie argumenty przesyłane do metody find

Znam SQL, ale przyznam, o czymś takim jak GROUP BY nigdy nie słyszałem ;/ Dzięki za pomoc :slight_smile:

No to chyba słabo znasz SQL bo GROUP BY to podstawa, rozumiem że ktoś może mieć problem z TRIGGERAMI z jezykiem pgsql ALE grupowanie, złączenia itp to podstawy

Dziwne. Bardzo dużo miałem styczności z SQL podczas programowania w PHP. Myślę, że wynika to z tego że nigdy nie miałem potrzeby używać GROUP BY, bo zazwyczaj uczę się tego co mi potrzeba wiedzieć. Jeszcze raz dziękuje