2010-06-16 7 views
0

내 데이터베이스 테이블을 쿼리하여 관련 지원 티켓이 가장 많은 직원을 찾아야합니다. 이 MySQL 쿼리를 사용하여이 작업을 수행 할 수 있습니다.SQL 쿼리를 Ruby 도움말로 변환

SELECT employee_id, COUNT(id) AS number_of_tickets FROM tickets GROUP BY employee_id ORDER BY number_of_tickets DESC LIMIT 1; 

Ruby-on-Rails는 어떻게 작성합니까?

도움을 주셔서 대단히 감사드립니다.

Ruby 버전 1.8.6, 레일즈 버전 2.2.2 및 MySQL 서버 버전 5.0을 사용합니다.

답변

0

이 시도 : 직접

Ticket.find(:all, :select => 'employee_id, count(id) as number_of_tickets', 
      :group => 'employee_id' , :order => "number_of_tickets Desc", :limit => 1) 

또는를 사용

Ticket.find_by_sql('select...... ') 
+0

좋아, 내가 지금하는 동안 작은이 고민되었지만,이 방법을 사용하여 "#을 생산 ". 원래 배열이나 해시에 저장했기 때문에 이것이 가능하다고 생각했지만 아아, 나는 그것을 해결할 수 없습니다. 정수 대신 출력으로 "#"가 표시되는 이유는 무엇입니까? – Verloren

+0

신경 쓰지 마라, 나는 그것을 해결했다. 레일즈는 컬렉션을위한 메모리 주소를 출력하고 있었고, 출력하기를 원하는 필드 이름을 지정해야했습니다. 답변 해 주셔서 다시 한 번 감사드립니다. – Verloren

관련 문제