Heim >Datenbank >MySQL-Tutorial >Wie berechnet man bedingte Summen innerhalb einer gruppierten SQL-Abfrage (MSSQL)?
Bedingte Summierung in Group By-Abfragen verwenden – MSSQL
Freddie benötigt eine SQL-Abfrage, um Tabellendaten basierend auf bestimmten Kriterien zusammenzufassen. Die ursprüngliche Tabelle „OrderDetails“ enthält vier Spalten, die die mit einer bestimmten Bestellung (OrderId) verbundenen Kosten darstellen. Das Ziel besteht darin, eine neue Tabelle mit fünf Spalten zu erstellen: OrderId, ItemCount, TotalCopyCost und TotalFullPrice.
Um das gewünschte Ergebnis zu erhalten, wird eine Kombination aus Group By- und CASE-Anweisungen verwendet. Group By wird verwendet, um die Daten nach OrderId zu gruppieren, während die CASE-Anweisung die CopyCost- und FullPrice-Werte basierend auf der PriceType-Spalte bedingt summiert:
<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>
Diese Abfrage gruppiert die OrderDetails-Tabelle effektiv nach OrderId, zählt die Anzahl der Elemente in jeder Gruppe und summiert bedingt die CopyCost- und FullPrice-Werte für jede Gruppe, was zu einer neuen Tabelle mit dem gewünschten Schema führt.
Das obige ist der detaillierte Inhalt vonWie berechnet man bedingte Summen innerhalb einer gruppierten SQL-Abfrage (MSSQL)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!