Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melakukan Penjumlahan Bersyarat dalam Kumpulan MSSQL Mengikut Pertanyaan?

Bagaimana untuk Melakukan Penjumlahan Bersyarat dalam Kumpulan MSSQL Mengikut Pertanyaan?

Barbara Streisand
Lepaskan: 2025-01-08 07:08:40
asal
715 orang telah melayarinya

How to Perform Conditional Summation in MSSQL Group By Queries?

Penjumlahan Bersyarat dengan MSSQL's GROUP BY Clause

Microsoft SQL Server (MSSQL) menawarkan pengagregatan data yang fleksibel menggunakan klausa GROUP BY. Untuk melaksanakan penjumlahan bersyarat dalam pertanyaan GROUP BY, manfaatkan pernyataan CASE untuk memasukkan nilai secara terpilih dalam jumlah berdasarkan kriteria tertentu.

Pertimbangkan OrderDetails jadual dengan struktur berikut:

<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>
Salin selepas log masuk

Untuk mengira ItemCount, TotalCopyCost dan TotalFullPrice bagi setiap OrderId, gunakan pertanyaan ini:

<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>
Salin selepas log masuk

Pernyataan CASE dalam fungsi SUM() menjumlahkan nilai Price secara bersyarat. Jika PriceType ialah 'CopyCost', Price disertakan; jika tidak, 0 ditambah. Ini membolehkan jumlah berasingan untuk 'Kos Salin' dan 'Harga Penuh' setiap OrderId.

Outputnya ialah:

<code>----------------------------------------------------------------
|  OrderId  |  ItemCount  |  TotalCopyCost  |  TotalFullPrice  |
----------------------------------------------------------------
|  16       |  4          |  150            |  100             |
----------------------------------------------------------------</code>
Salin selepas log masuk

Ini menunjukkan bagaimana pernyataan CASE mendayakan pengagregatan bersyarat yang berkuasa dalam GROUP BY pertanyaan, menyediakan kaedah yang fleksibel untuk ringkasan dan analisis data dalam MSSQL.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Penjumlahan Bersyarat dalam Kumpulan MSSQL Mengikut Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan