Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions tests/test_group_by.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from tests.testmodels import Author, Book, Event, Team, Tournament
from tortoise.contrib import test
from tortoise.expressions import Subquery
from tortoise.functions import Avg, Count, Sum, Upper


Expand Down Expand Up @@ -317,3 +318,16 @@ async def test_group_by_nested_column(self):
async def test_group_by_id_with_nested_filter(self):
ret = await Book.filter(author__name="author1").group_by("id").values_list("id")
self.assertEqual(set(ret), {(book.id,) for book in self.books1})

async def test_subquery_group_by_no_alias(self):
query = Author.annotate(
book_name=Subquery(Book.all().group_by("name").order_by("name").limit(1).values("name"))
)

sql = query.sql()

self.assertIn('GROUP BY "name"', sql)
self.assertNotIn('GROUP BY "name" "', sql)

result = await query.values("name", "book_name")
self.assertIsInstance(result, list)
4 changes: 1 addition & 3 deletions tortoise/queryset.py
Original file line number Diff line number Diff line change
Expand Up @@ -1598,9 +1598,7 @@ def _resolve_group_bys(self, *field_names: str) -> list:
field=field,
forwarded_fields=forwarded_fields,
)
field = related_table[related_db_field].as_(
f"{related_table.get_table_name()}__{field_name}"
)
field = related_table[related_db_field]
group_bys.append(field)
return group_bys

Expand Down
Loading