ホームページ >データベース >mysql チュートリアル >MSSQLのGroup Byクエリ内の条件付き合計を計算するにはどうすればよいですか?

MSSQLのGroup Byクエリ内の条件付き合計を計算するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-08 07:36:41180ブラウズ

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

MSSQL グループ化クエリの条件付き合計

SQL Server の OrderDetails テーブルでは、各注文項目に一意の OrderId、関連するコスト (CopyCost、FullPrice) および価格タイプ (PriceType) があります。目標は、OrderId、ItemCount、TotalCopyCost、TotalFullPrice の 3 つの列を持つ概要テーブルを作成することです。ここで、ItemCount は注文ごとのアイテム数、TotalCopyCost は各注文の CopyCost 値の合計、TotalFullPrice は合計です各注文の FullPrice 値。

これには、条件付き合計を含むグループ化されたクエリを使用できます。

<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>

このクエリ内:

  • COUNT(*) 式は、ItemCount を計算します。
  • 2 つの SUM(CASE) 式は、PriceType 列に基づいて条件付き合計を実行します。 PriceType が CopyCost の場合、CASE 式は Price 自体に評価され、それ以外の場合は 0 に評価されます。次に、SUM 関数は各注文の値を加算します。同様に、2 番目の CASE 式は FullPrice の合計を処理します。

条件付き合計を使用することで、クエリは各注文の合計コストと全額を効率的に計算し、結果を OrderId ごとにグループ化します。結果として得られる概要テーブルには、生データの包括的なビューが提供され、注文関連の料金の分析が容易になります。

以上がMSSQLのGroup Byクエリ内の条件付き合計を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。