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?
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
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
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