Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan Penjumlahan Bersyarat dalam Kumpulan MSSQL Mengikut Pertanyaan?
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>
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>
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>
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!