레일 및 액티브 레코드 쿼리를 처음 사용합니다. 빈도별로 쿼리 결과를 정렬하고 싶습니다.활성 레코드의 빈도 순 주문
SQL 쿼리가 그것 수 :
SELECT author FROM books GROUP BY author ORDER BY COUNT(*) DESC LIMIT 10;
(내가 here을 발견하고이 질문을 프레임에 매우 도움이되었다.)
지금은 알파벳순으로 그것을 할 것입니다 무엇을 :
<p>The authors are: <% @books.select(:author).distinct.order(:author).each do |book| %>
<br><%= book.author %> <%= @books.where(author: book.author).count %>
<% end %></p>
나를 얻을 수있는 사람 : 예 :
등아시모프, 이삭이
딕, 필립 K. 8
Pynchon, 토마스 3
하지만 주파수에 의한 결과 (딕, Pynchon, 아시모프)을 주문하려면, 알파벳 순서가 아닙니다.
가능하면 출력물에 빈도를 알아내는 더 좋은 방법이 있지만 저자명과 책 수를 가능한 한 별도의 출력으로 남기고 싶습니다 (테이블로 전환 할 수 있기를 원합니다). @books.where(author: book.author).count
대신). 그러나 주요 쟁점은 초기 주문 권리를 얻는 것입니다.
도움을 주시면 대단히 감사하겠습니다.
FYI : 쿼리가 컨트롤러에 있어야합니다. – Brandon