Heim > Datenbank > MySQL-Tutorial > Wie berechnet man bedingte Summen innerhalb einer Group-By-Abfrage in MSSQL?

Wie berechnet man bedingte Summen innerhalb einer Group-By-Abfrage in MSSQL?

Mary-Kate Olsen
Freigeben: 2025-01-08 07:36:41
Original
174 Leute haben es durchsucht

How to Calculate Conditional Sums within a Group By Query in MSSQL?

Bedingte Summierung in gruppierter MSSQL-Abfrage

In der OrderDetails-Tabelle von SQL Server verfügt jeder Bestellartikel über eine eindeutige OrderId sowie zugehörige Kosten (CopyCost, FullPrice) und Preistyp (PriceType). Das Ziel besteht darin, eine Übersichtstabelle mit drei Spalten zu erstellen: OrderId, ItemCount, TotalCopyCost und TotalFullPrice, wobei ItemCount die Anzahl der Artikel pro Bestellung, TotalCopyCost die Summe der CopyCost-Werte für jede Bestellung und TotalFullPrice die Summe ist der FullPrice-Werte für jede Bestellung.

Hierfür können Sie eine gruppierte Abfrage mit bedingter Summe verwenden:

<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>
Nach dem Login kopieren

In dieser Abfrage:

  • COUNT(*)-Ausdruck berechnet ItemCount.
  • Zwei SUM(CASE)-Ausdrücke führen eine bedingte Summe basierend auf der PriceType-Spalte durch. Wenn PriceType CopyCost ist, wird der CASE-Ausdruck zu Price selbst ausgewertet; andernfalls wird er zu 0 ausgewertet. Die SUM-Funktion addiert dann die Werte jeder Bestellung. In ähnlicher Weise verarbeitet der zweite CASE-Ausdruck die Summierung von FullPrice.

Durch die Verwendung der bedingten Summierung berechnet die Abfrage effizient die Gesamtkosten und den Gesamtpreis jeder Bestellung und gruppiert die Ergebnisse nach OrderId. Die resultierende Übersichtstabelle bietet einen umfassenden Überblick über die Rohdaten und erleichtert so die Analyse auftragsbezogener Gebühren.

Das obige ist der detaillierte Inhalt vonWie berechnet man bedingte Summen innerhalb einer Group-By-Abfrage in MSSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage