`SELECT DISTINCT` is an easy way to filter duplicates with complex queries, but it carries with it some problems:
1. **It's slow.** This can substantially increase query times on large databases (certainly with MySQL)
2. **It introduces subqueries in Django**. A `.distinct().count()` operation turns into a `SELECT COUNT(*) FROM (SELECT ...)`, which results in counting the number of rows fetched from a query. This is very slow.
This is all ultimately because the SQL query optimizer's Plan will perform a Distinct Sort, which is itself slow and requires having all of the data available.
Ideally, we avoid `DISTINCT` where possible.
Here's a good article on this:
* [Don't use DISTINCT as a "join-fixer" - Simple Talk](https://www.red-gate.com/simple-talk/databases/sql-server/t-sql-programming-sql-server/dont-use-distinct-as-a-join-fixer/)