リンクされている2つのモデルがあります。ここでは単純化のためのサブセットです:django週平均平均クエリーセットを取得するにはどうすればいいですか
class Job(models.Model):
event = models.OneToOneField(Event, on_delete=models.CASCADE, null=False, blank=False)
completion_time = models.DateTimeField(db_index=True, null=True, blank=True)
labor_price = models.FloatField(verbose_name='Final Labor Price', blank=True, null=True)
と:
class Event(models.Model):
start_time = models.DateTimeField(db_index=True, null=True, blank=True)
end_time = models.DateTimeField(db_index=True, null=True, blank=True)
私はいくつかのことを取得する必要がある、と私は、彼らがSQLで行うことができます知っているが、私は何するかどうかはわかりません彼らはdjangoで。ジョブのlabor_price
には毎月と毎週の平均が必要です。私はそれをテストしていないように、他の言葉では、このようなものは、と私は、私がやっている何のためそれが間違っていてもよい:
SELECT `schedule_event.start_time`, AVG(`jobs_job.labor_price`)
FROM jobs_job
INNER JOIN schedule_event on jobs_job.event_id = schedule_event.id
GROUP BY YEAR(`schedule_event.start_time`), MONTH(`schedule_event.start_time`)
HAVING COUNT(`schedule_event.start_time`) = DAY(LAST_DAY(`schedule_event.start_time`));
私も週に平均時給労働の価格を取得する必要があり
、現時点でどのように動作するのかは分かりません。これは、日付の特定のフィルタでaverage(labor_price/(completion_time - event__start_time))
のような何かを行うクエリになります。
Iを生のクエリとしてそれを行います。たとえそれがdjango ORMコードで可能な場合でも、単純なSQLより読みにくくなります。 ORMクエリは最適ではありません。 – Raz
私はそのクエリを動作させる必要があります。これは私がmysqlで使用していたものですが、タイムゾーンを認識できるタイムスタンプがあるため、pgsqlでは機能しないようですが、修正方法がわかりません。 –