2017-08-23 2 views
0

Iは週間によってグループフィールドをSQLiteのでクエリを持っており、同じテーブルで平均上距離時間フィールドを行う:変換のSQLiteの

select 
    strftime('%W', datetime) WeekNumber, 
    sum(distance) as TotalDistance, 
    sum(distance)/sum(time) as AverageSpeed 
from sample_login_run 
group by WeekNumber; 

このクエリをDjango ORMに変換しようとしており、Raw機能を使用しないでください。 Django ORMでextraを使用する必要があることを理解しています。しかしそれは問題ではありません。

Run.objects.extra(select={'week': "strftime('%%W', datetime)"}).values(
      'week','distance').annotate(
      total_distance=Sum('distance'), average_time=F('distance')/F('time')) 

しかし、これはまたaverage_timeaverage_distanceフィールドでデータをグループ化している:私はこれを思いつきました。どんな助けでも本当に感謝します。ありがとうございました。このため

答えて

0

右ソリューションです:valuesに渡さ

Run.objects.extra(select={'week': "cast(strftime('%%W', date_run) as integer)"}).values('week').annotate(
       total_distance=Sum('distance'), average_time=F('distance')/F('time')) 

フィールドは、クエリのgroup by一部の下に移動します。

関連する問題