私はトリッキーな Django クエリを見つけようとしています。あなたが助けてくれることを願っています。私はこのモデルを持っています:
class ActiveVenue(models.Model):
event = models.ForeignKey(Event)
venue = models.ForeignKey(Venue)
class Venue(models.Model):
name = models.CharField(max_length=200)
class Event(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=200)
私のアプリには多くのイベントがあり、各イベントは複数のアクティブな会場を持つことができるため、現在のデータ構造です。これはすでに展開されたサイトであり、現在のモデル構造を維持したいので、解決策が「モデルを foo に変更する」ではないことをお勧めします。
最も人気のある会場を返すクエリを作成したいと考えていますが、その会場はユーザーごとに 1 回だけカウントされます。例として、4 つのイベントを持つ 1 人のユーザーがいて、毎回同じ会場を使用している場合、最も人気のある会場を決定するときに、その会場を 1 回だけカウントしたいと考えています。
これを説明するために、これが私のデータだと想像してください。
event: A user: bob venue: The Hill
event: B user: bob venue: The Hill
event: C user: bob venue: The Hill
event: D user: jane venue: The Oaks
event: E user: sarah venue: The Pound
event: F user: david venue: The Pound
event: G user: ron venue: The Oaks
event: H user: erica venue: The Oaks
ここで一般的な順序は次のとおりです。
1. The Oaks
2. The Pound
3. The Hill
postgres と sqlite の両方で機能する (つまり、依存しないdistinct()
(sqlite ではサポートされていない)) これを行うためのクエリを作成する方法について何か提案はありますか?
ありがとう!