Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengira Jumlah Bersyarat dalam Kumpulan Dengan Pertanyaan dalam MSSQL?

Bagaimana untuk Mengira Jumlah Bersyarat dalam Kumpulan Dengan Pertanyaan dalam MSSQL?

Mary-Kate Olsen
Lepaskan: 2025-01-08 07:36:41
asal
176 orang telah melayarinya

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

Penjumlahan bersyarat dalam pertanyaan terkumpul MSSQL

Dalam jadual OrderDetails SQL Server, setiap item pesanan mempunyai OrderId yang unik dan kos yang berkaitan (CopyCost, FullPrice) dan jenis harga (PriceType). Matlamatnya ialah untuk mencipta jadual ringkasan dengan tiga lajur: OrderId, ItemCount, TotalCopyCost dan TotalFullPrice, dengan ItemCount ialah bilangan item setiap pesanan, TotalCopyCost ialah jumlah nilai CopyCost untuk setiap pesanan dan TotalFullPrice ialah jumlah daripada nilai FullPrice untuk setiap pesanan.

Untuk ini, anda boleh menggunakan pertanyaan terkumpul dengan jumlah bersyarat:

<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

Dalam pertanyaan ini:

  • Ungkapan COUNT(*) mengira ItemCount.
  • Dua ungkapan SUM(CASE) melakukan jumlah bersyarat berdasarkan lajur PriceType. Jika PriceType ialah CopyCost, ungkapan CASE menilai kepada Harga itu sendiri, sebaliknya, ia menilai kepada 0. Fungsi SUM kemudian menambah nilai setiap pesanan. Begitu juga, ungkapan CASE kedua mengendalikan penjumlahan FullPrice.

Dengan menggunakan penjumlahan bersyarat, pertanyaan mengira jumlah kos dan harga penuh bagi setiap pesanan dan mengumpulkan hasilnya mengikut OrderId dengan cekap. Jadual ringkasan yang terhasil menyediakan paparan komprehensif data mentah, menjadikannya lebih mudah untuk menganalisis caj berkaitan pesanan.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Jumlah Bersyarat dalam Kumpulan Dengan Pertanyaan dalam MSSQL?. 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