Dies ist ein ziemlich grundlegendes Problem und aus irgendeinem Grund kann ich keine vernünftige Lösung finden. Ich werde mein Bestes geben, um es zu erklären.Verwenden von distinct und dann eine Aggregatfunktion in Postgresql?
Angenommen, Sie haben ein Ereignis Ticket (Abschnitt, Zeile, Sitz #). Jedes Ticket gehört einem Teilnehmer. Mehrere Tickets können zum selben Teilnehmer gehören. Jeder Teilnehmer hat einen Wert (z. B .: Teilnehmer # 1 ist 10.000 $ wert). Das heißt, hier ist es, was ich tun möchte:
1. Group the tickets by their section
2. Get number of tickets (count)
3. Get total worth of the attendees in that section
Hier ist, wo ich Probleme habe: Wenn Teilnehmer # 1 ist im Wert von $ 10.000 und wird unter Verwendung von 4 Tickets, sum (attendees.worth) zurückkehrt $ 40.000. Was nicht genau ist. Der Wert sollte 10.000 $ sein. Wenn ich jedoch das Ergebnis für den Teilnehmer deutlich mache, ist die Anzahl nicht korrekt. In einer idealen Welt wäre es schön, etwas wie
zu tunOffensichtlich funktioniert diese Abfrage nicht. Wie kann ich dasselbe in einer einzigen Abfrage erreichen? ODER ist es überhaupt möglich? Ich würde es vorziehen, auch von Unterabfragen fern zu bleiben, weil dies Teil einer viel größeren Lösung ist, wo ich dies über mehrere Tabellen hinweg tun müsste.
Auch der Wert sollte dem Ticket gleichmäßig verteilt folgen. Beispiel: $ 10.000/4. Jedes Ticket hat einen Teilnehmer im Wert von $ 5.000. Wenn also die Tickets in verschiedenen Abschnitten sind, nehmen sie ihren anteiligen Wert mit.
Danke für Ihre Hilfe.
Ich weiß, es ist eine Weile her, aber ich habe genau das gleiche Art von Problem und ich frage mich, ob Sie es lösen konnten. – denaje