SQL - Sortowanie rekordów według liczby rekordów asocjowanych

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?

A czy to pomoże?

LEFT OUTER JOIN messages ON messages.sender_id = users.id OR messages.recipient_id = users.id