Duplicate AS clause in SQL when aliasing a function call
Thanks for reporting, I'll take a look. Fixed, thanks. Works great, thanks for the quick response!  🙂
I have two tables -- `User`, and `Data` which references users.  When querying, I add a property on the user result for whether any data rows reference that user (in reality there's other metadata attached here too):

```python
class User(Model):
    ...
    @classmethod
    def select_context(cls):
        return (cls.select(cls, fn.Exists(Data.select()
                                              .where(Data.user == User.id))
                                              .alias("exists")))
```

Running that query using APSW on Peewee 3.x gives me `apsw.SQLError: SQLError: near "AS": syntax error`, but this seemed to work fine on 2.x.

SQL example in Peewee 2.10.2:

```python
>>> User.select(User.id, fn.Exists(Data.select()).alias("exists")).sql()
('SELECT "t1"."id", Exists(SELECT "t2"."id" FROM "data" AS t2) AS exists FROM "user" AS t1', [])
```

And in 3.x (tested with 3.0.0 and 3.2.2), note two `AS` clauses for `exists`:

```python
>>> User.select(User.id, fn.Exists(Data.select()).alias("exists")).sql()
('SELECT "t1"."id", Exists(SELECT "t2"."id" FROM "data" AS "t2") AS "t3" AS "exists" FROM "user" AS "t1"', [])
```

I had a look through the 3.0 changes but couldn't see anything obvious that applies here?