Bedingte Summierung mit der GROUP BY-Klausel von MSSQL
Microsoft SQL Server (MSSQL) bietet eine flexible Datenaggregation mithilfe der GROUP BY
-Klausel. Um eine bedingte Summierung innerhalb einer GROUP BY
-Abfrage durchzuführen, nutzen Sie die CASE
-Anweisung, um basierend auf bestimmten Kriterien selektiv Werte in die Summe einzubeziehen.
Betrachten Sie eine OrderDetails
Tabelle mit der folgenden Struktur:
<code>---------------------------------------------------------------- | OrderId | CopyCost | FullPrice | Price | PriceType | ---------------------------------------------------------------- | 16 | 50 | 100 | 50 | CopyCost | ---------------------------------------------------------------- | 16 | 50 | 100 | 100 | FullPrice | ---------------------------------------------------------------- | 16 | 50 | 100 | 50 | CopyCost | ---------------------------------------------------------------- | 16 | 50 | 100 | 50 | CopyCost | ----------------------------------------------------------------</code>
Um ItemCount
, TotalCopyCost
und TotalFullPrice
für jedes OrderId
zu berechnen, verwenden Sie diese Abfrage:
<code class="language-sql">SELECT OrderId, COUNT(*) AS ItemCount, SUM(CASE WHEN PriceType = 'CopyCost' THEN Price ELSE 0 END) AS TotalCopyCost, SUM(CASE WHEN PriceType = 'FullPrice' THEN Price ELSE 0 END) AS TotalFullPrice FROM OrderDetails GROUP BY OrderId;</code>
Die CASE
-Anweisung innerhalb der SUM()
-Funktion summiert bedingt Price
-Werte. Wenn PriceType
„CopyCost“ ist, ist Price
enthalten; andernfalls wird 0 hinzugefügt. Dies ermöglicht separate Summen für „CopyCost“ und „FullPrice“ pro OrderId
.
Die Ausgabe wäre:
<code>---------------------------------------------------------------- | OrderId | ItemCount | TotalCopyCost | TotalFullPrice | ---------------------------------------------------------------- | 16 | 4 | 150 | 100 | ----------------------------------------------------------------</code>
Dies zeigt, wie CASE
-Anweisungen eine leistungsstarke bedingte Aggregation innerhalb von GROUP BY
-Abfragen ermöglichen und so eine flexible Methode zur Datenzusammenfassung und -analyse in MSSQL bereitstellen.
Das obige ist der detaillierte Inhalt vonWie führe ich eine bedingte Summierung in MSSQL-Gruppierungsabfragen durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!