どうしたらいいの

おそらく、Aggの代わりにMinCountを使用することで問題が解決されるはずです。以下は、Minを使用して最小値を取得する例です:

python
from django.db.models import Min, F, Q from .models import RakutenPriceSearch # original_product_codeごとの最安値とそのショップコードを取得 min_price_records = RakutenPriceSearch.objects.values('original_product_code').annotate( min_price=Min('itemPriceMin1'), shopCode=Min('shopCode') ) # 最安値の次に安い価格とそのショップコードを取得 second_min_price_records = RakutenPriceSearch.objects.filter( ~Q(itemPriceMin1=F('min_price')) # 最安値でないレコードをフィルタリング ).values('original_product_code').annotate( second_min_price=Min('itemPriceMin1'), second_shopCode=Min('shopCode') )

このように、annotate()メソッドを使用してMin関数を使い、filter()メソッドで条件を指定して取得すれば、目的の結果が得られるはずです。

未分類

Posted by ぼっち