text: Title: Actual query results and Tortoise results inconsistent with filtering using custom SQL annotations
  Body: **Describe the bug**
  The following demo model outputs SQL that returns multiple results. However, when actually executing the query, Tortoise for unknown reasons only returns one result.
  
  Here is the model:
  ```python
  class Demo(Model):
      active      = fields.BooleanField(default=True)
      user_id     = fields.BigIntField(index=True)
      start       = fields.DatetimeField(auto_now=True)
      end         = fields.DatetimeField(default=None, null=True)
  
      @staticmethod
      async def get_active():
          return Demo.filter(consumed__gt=0.0)\
              .filter(active=True)\
              .annotate(active_seconds=RawSQL(f'{int(time.time())} - UNIX_TIMESTAMP(`start`)'))\
              .filter(active_seconds__lt=90000)\
              .sql()
  ```
  
  Here is the query it outputs:
  ```sql
  SELECT `user_id`,`end`,`id`,`active`,`start`,1675345393 - UNIX_TIMESTAMP(`start`) `active_seconds` FROM `demo` WHERE `active`=true AND 1675345393 - UNIX_TIMESTAMP(`start`)<90000
  ```
  
  This query returns 4 results,
  ![image](https://user-images.githubusercontent.com/7929996/216341356-170529e8-82b6-449f-b5ff-6013caa7ff06.png)
  
  Running the query through Tortoise again now, it returns nothing, unless I increase active_seconds to 100,000, then it returns 2 results again.
  
  
  **To Reproduce**
  You'll likely need to re-create your own demo tables and run a query with a filter similar to what is demonstrated above.
  
  **Expected behavior**
  It is doing something outside of the query and filtering results that it should not be filtering. Any results that are returned by the database backend should be processed. For some reason, that is not happening here. I have no idea what it could be doing between running the query, which works and returns the correct number of results, and processing the results into objects.