Nicht sicher, wie diese Frage formuliert wird, aber ich möchte eine Aggregatabfrage auf mehrere Zeilen angewendet. Hoffentlich sollte ein Beispiel dies erleichtern. Angenommen, ich habe folgende Daten:Kombinierte aggregierte und nicht aggregierte Abfrage in SQL
player | year | games
-------------------------
ausmubr01 | 2006 | 139
ausmubr01 | 2007 | 117
bondsba01 | 2006 | 130
bondsba01 | 2007 | 126
stairma01 | 2006 | 26
stairma01 | 2006 | 77
stairma01 | 2006 | 14
stairma01 | 2007 | 125
Und für jeden Spieler in jedem Jahr, ich will ihre „Karriere Jahr“ berechnen, dh die Anzahl der Jahre, die sie gespielt haben:
player | year | games | cyear
--------------------------------
ausmubr01 | 2006 | 139 | 1
ausmubr01 | 2007 | 117 | 2
bondsba01 | 2006 | 130 | 1
bondsba01 | 2007 | 126 | 2
stairma01 | 2006 | 26 | 1
stairma01 | 2006 | 77 | 2
stairma01 | 2006 | 14 | 3
stairma01 | 2007 | 125 | 4
es wäre natürlich, diese Transformation als SELECT player, year, games, year - min(year) + 1 as cyear FROM baseball GROUP by player
zum Ausdruck bringen, sondern wegen der Regeln für die aggregierte Abfragen der Ausdruck nur einmal für jede Gruppe ausgewertet wird:
player | year | games | cyear
--------------------------------
ausmubr01 | 2006 | 139 | 1
bondsba01 | 2006 | 130 | 1
stairma01 | 2006 | 26 | 1
wie kann ich diese überwinden Problem im Allgemeinen (d. h. nicht nur für diesen Fall, sondern immer dann, wenn ich eine arithmetische Operation durchführen möchte, die eine vorhandene Spalte und eine einzelne pro-Gruppe-Zahl kombiniert mit einer Aggregatfunktion kombiniert)?
Bitte geben Sie das RDBMS, die Sie, indem Sie die entsprechenden Tag (Oracle, SQL Server, MySQL, etc.) zielen kann es Antworten, die den Vorteil der Sprache oder Produkt nehmen Funktionen, die nicht universell unterstützt werden Durch das Tagging mit einem bestimmten RDBMS erhält Ihre Frage möglicherweise die Aufmerksamkeit von Personen, die besser dafür geeignet sind, sie zu beantworten – Taryn
@blue Füße Ich interessiere mich für Antworten, die allgemein gelten, nicht für ein bestimmtes RDBMS. – hadley