PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Django израз на заявка за изчислени полета, които изискват условия и кастинг

Използвайте условни изрази :

from django.db.models import Case, F, Sum, When

Stats.objects.values('product').annotate(
    tot_impressions=Sum('impressions'), 
    tot_clicks=Sum('clicks')
).annotate(
    ctr=Case(When(tot_impressions=0, then=None),  # or other value, e.g. then=0
             # 1.0*... is to get float in SQL
             default=1.0*F('tot_clicks')/F('tot_impressions'),
             output_field=models.FloatField())
).order_by('ctr')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Низ във формат на Postgres, използващ масив

  2. Индексиране на нулеви стойности в PostgreSQL

  3. Вмъкване на данни в таблици, свързани с външен ключ

  4. Изпълнете VACUUM FULL с JPA

  5. postgresql:Защо трябва да посочвам -h localhost, когато изпълнявам psql?