From f021c110d02fd7ca32ae56f511b46e5d138b6c73 Mon Sep 17 00:00:00 2001 From: Nasir Hussain Date: Tue, 15 Jan 2019 01:52:09 +0500 Subject: Fixed #30099 -- Fixed invalid SQL when filtering a Subquery by an aggregate. --- tests/expressions/tests.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'tests') diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py index ee3676e64a..df92dba432 100644 --- a/tests/expressions/tests.py +++ b/tests/expressions/tests.py @@ -534,6 +534,18 @@ class BasicExpressionsTests(TestCase): outer = Company.objects.filter(pk__in=Subquery(inner.values('pk'))) self.assertFalse(outer.exists()) + def test_subquery_filter_by_aggregate(self): + Number.objects.create(integer=1000, float=1.2) + Employee.objects.create(salary=1000) + qs = Number.objects.annotate( + min_valuable_count=Subquery( + Employee.objects.filter( + salary=OuterRef('integer'), + ).annotate(cnt=Count('salary')).filter(cnt__gt=0).values('cnt')[:1] + ), + ) + self.assertEqual(qs.get().float, 1.2) + def test_explicit_output_field(self): class FuncA(Func): output_field = models.CharField() -- cgit v1.3