﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
32963	Bug: combination of filter on the annotation and random order.	mohamad ali Mehdizadeh	nobody	"I have a query like:
In [6]: Shop.objects\
   ...:         .annotate(product_count = Count('ShopProduct'))\
   ...:         .filter(product_count__gt=1)\
   ...:         .order_by('?')
Out[6]: <QuerySet []>

but the out put is empty!
if i remove order_by('?') it works, and the same for the filter(product_count__gt=1).
I get the SQL from connection.queries:

SELECT ..., COUNT(""nakhll_market_product"".""ID"") AS ""product_count"" FROM ""nakhll_market_shop"" LEFT OUTER JOIN ""nakhll_market_product"" ON (""nakhll_market_shop"".""ID"" = ""nakhll_market_product"".""FK_Shop_id"") GROUP BY ""nakhll_market_shop"".""ID"", RANDOM() HAVING COUNT(""nakhll_market_product"".""ID"") > 1 ORDER BY RANDOM() ASC

but this SQL works correctly:

SELECT 
... ,
COUNT(""nakhll_market_product"".""ID"") AS ""product_count"" 
FROM ""nakhll_market_shop"" 
 LEFT OUTER JOIN 
 ""nakhll_market_product"" ON (""nakhll_market_shop"".""ID"" = ""nakhll_market_product"".""FK_Shop_id"") 
 WHERE (""nakhll_market_shop"".""Available"" AND ""nakhll_market_shop"".""Publish"") 
 GROUP BY ""nakhll_market_shop"".""ID"" HAVING COUNT(""nakhll_market_product"".""ID"") > 1  
 ORDER BY RANDOM() "	Bug	new	Database layer (models, ORM)	3.1	Normal		Random + Group By		Unreviewed	0	0	0	0	0	0
