こんにちは私はクライアント側(High Charts)のグラフ作成のためのデータを出力するDjangoビューを作成しています。データは、1日に1回記録された所定のパラメータを有する気候データである。時間間隔でDjangoクエリーセット集約
私のクエリはこれです:
今format = '%Y-%m-%d'
sd = datetime.datetime.strptime(startdate, format)
ed = datetime.datetime.strptime(enddate, format)
data = Climate.objects.filter(recorded_on__range = (sd, ed)).order_by('recorded_on')
、範囲が増加すると、データセットが明らかに大きくなると、これは(脇かなり物事を遅くから)グラフ上に同様に存在しません。
データを期間の平均としてグループ化する方法はありますか?具体的には、毎月の平均値または各年の平均値ですか?
私はここに述べたように、これはSQLで行うことができる実現:django aggregation to lower resolution using grouping by a date range
しかし、私はジャンゴ自体に便利な方法があるかどうかを知りたいです。
または、dbを直接変更し、スクリプトを使用してタイムスタンプから月と年のフィールドを設定する方が良いでしょうか?
ご迷惑をおかけして申し訳ございません。
うーん。有望に見えます - 私は見ています。 –
通常のDjangoでもこのタイプのクエリは可能ですか? –
はい、User.objects.filter()。aggregate();を使用すると、同様の結果が得られます。次の公式の文書を参照してください:https://docs.djangoproject.com/en/dev/topics/db/aggregation/ – BluesRockAddict