sql >> Databasteknik >  >> RDS >> PostgreSQL

Django frågeuttryck för beräknade fält som kräver villkor och gjutning

Använd villkorliga uttryck :

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. Mysql-anslutningsfråga

  2. Hur gör jag en trigger för att uppdatera en kolumn i en annan tabell?

  3. Strategi för att synkronisera databas från flera platser till en central databas och vice versa

  4. Hämta ConnectionString från app.config i c#