Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Grupuj według kombinacji 2 pól, a następnie uporządkuj według sumy każdej grupy, wiele adnotacji django

print(str(high_margin.query))

W ten sposób możesz uzyskać to, co queryset produkuje i bawi się, ponieważ jest to leniwe zapytanie, jak stwierdził odpowiedz tutaj. Więc otrzymałem oczekiwane zapytanie SQL, po prostu dodając expiry_date w values , który tworzy grupę według nazwy, datę wygaśnięcia określoną przez docs .
Zmienia się kod 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)]

*nie jestem pewien, czy rzeczywiście jest poprawny




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql Od enum do drobnych problemów

  2. UPDATE with SELECT, czy zablokuje każdy wiersz lub wszystkie WYBRANE rekordy?

  3. MySql :Wybierz instrukcję za pomocą operatora IN

  4. Zapytanie, aby uzyskać wszystkie wiersze z poprzedniego miesiąca

  5. MySQL - CASE vs Instrukcja IF vs funkcja IF