Problem jest niezwiązany bezpośrednio z Railsami, ale pozwalam sobie na pytanie tutaj, bo jednak olbrzymia większość użytkowników ma styczność z SQL-em.
Sytuacja wygląda następująco:
Mamy tabele users i messages.
Każdy rekord message ma pola sender_id i recipient_id.
Chciałbym teraz wyciągnąć userów posortowanych po liczbie WSZYSTKICH wiadomości, zarówno otrzymanych, jak i wysłanych.
Użytkowników posortowanych po liczbie wiadomości wysłanych wyciągam takim zapytaniem:
SELECT *, COUNT(sent_messages.id) AS messages_count
FROM users
LEFT OUTER JOIN messages AS sent_messages ON sent_messages.sender_id = users.id
GROUP BY users.id
ORDER BY messages_count DESC
Czy istnieje sposób, aby to zapytanie zmodyfikować tak, aby spełniało moje założenie? A może moje podejście jest złe i można to zrobić, tylko że w jakiś zupełnie inny sposób?