sql >> Databáze >  >> RDS >> Mysql

Seskupit podle kombinace 2 polí a poté seřadit podle součtu každé skupiny, více anotací django

print(str(high_margin.query))

Tímto způsobem můžete získat to, co queryset produkuje a hraje si, protože jde o líný dotaz, jak uvádí odpovězte zde. Takže jsem dostal očekávaný SQL dotaz pouhým přidáním expiry_date v values , která vytváří skupinu podle názvu, datum vypršení platnosti, jak je uvedeno v docs .
Kód se změní jako:

high_margin = StoreInvoiceBreakup.objects \
  .filter(store_invoice__store_id=store_id) \
  .values('product_name', 'expiry_date') \
  .annotate(gross_margin_sum=Sum('gross_margin')) \
  .order_by('gross_margin_sum') \
  .distinct()[:int(sell_range)]

*nejsem si jistý, jestli je to skutečně správné




  1. Spojte dva stoly (se vztahem 1-M), kde je třeba druhý stůl „srovnat“ do jednoho řádku

  2. Jak nainstalovat a zabezpečit MariaDB na Debian 9

  3. Nelze načíst soubor nebo sestavení 'MySql.Data, verze=6.2.2.0

  4. SQL vybrat vše, pokud je parametr null, jinak vrátit konkrétní položku