Menggunakan penjumlahan bersyarat dalam Kumpulan Mengikut pertanyaan - MSSQL
Freddie memerlukan pertanyaan SQL untuk meringkaskan data jadual berdasarkan kriteria tertentu. Jadual asal OrderDetails mengandungi empat lajur yang mewakili kos yang berkaitan dengan pesanan tertentu (OrderId). Matlamatnya ialah untuk mencipta jadual baharu dengan lima lajur: OrderId, ItemCount, TotalCopyCost dan TotalFullPrice.
Untuk mendapatkan hasil yang diingini, gabungan pernyataan Kumpulan Mengikut dan KES digunakan. Group By digunakan untuk mengumpulkan data mengikut OrderId, manakala penyata CASE menjumlahkan nilai CopyCost dan FullPrice secara bersyarat berdasarkan lajur PriceType:
<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>
Pertanyaan ini secara berkesan mengumpulkan jadual OrderDetails mengikut OrderId, mengira bilangan item dalam setiap kumpulan dan menjumlahkan nilai CopyCost dan FullPrice secara bersyarat untuk setiap kumpulan, menghasilkan jadual baharu dengan skema yang dikehendaki .
Atas ialah kandungan terperinci Bagaimana untuk Mengira Jumlah Bersyarat dalam Kueri SQL Berkumpulan (MSSQL)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!