Rumah >pangkalan data >tutorial mysql >Bagaimana cara mengira jumlah yang berkesan dalam SQL Server?
Pengenalan
Pengiraan operasi adalah tugas yang sama dalam analisis data. Dalam SQL Server, terdapat banyak cara untuk mencapai matlamat ini, termasuk menggunakan fungsi tetingkap, sub -query yang berkaitan, dan penyelesaian berasaskan kursor. "JUXU Menetapkan Kemahiran" adalah kaedah perbincangan. Teknologi ini melibatkan memasukkan garisan ke dalam jadual sementara dengan operasi kosong, mengemas kini jadual dalam urutan tertentu, dan akhirnya memilih jumlah operasi yang dikemas kini.
Keterampilan ayat set agregat
Pertanyaan berikut menggunakan kemahiran kalimat set agregat untuk mengira jumlah operasi:
Kaedah ini dianggap cekap kerana ia dikemas kini dalam urutan yang dicari. Walau bagaimanapun, orang bimbang tentang kebolehpercayaan mereka dalam semua adegan.Kaedah alternatif untuk mengagregatkan kemahiran pernyataan
<code class="language-sql">INSERT INTO @AnotherTbl(id, somedate, somevalue, runningtotal) SELECT id, somedate, somevalue, null FROM TestTable ORDER BY somedate DECLARE @RunningTotal int SET @RunningTotal = 0 UPDATE @AnotherTbl SET @RunningTotal = runningtotal = @RunningTotal + somevalue FROM @AnotherTbl</code>
<.> 1. Fungsi tetingkap:
SQL Server 2012 memperkenalkan klausa lebih untuk membolehkan fungsi tetingkap penggunaan (seperti jumlah dengan pengagregatan kumulatif). Ini menghapuskan keperluan untuk operasi permukaan tambahan, dan memudahkan pertanyaan:
<.> 2. sub -query yang berkaitan boleh digunakan untuk mengambil operasi setiap baris:
<.> 3.
<code class="language-sql">SELECT somedate, somevalue, SUM(somevalue) OVER(ORDER BY somedate) AS RunningTotal FROM TestTable</code>kursor menyediakan mekanisme untuk pemprosesan secara beransur -ansur (dalam urutan tertentu). Penyelesaian Pengiraan Berasaskan Kursor Berikut Kursor Jumlah:
Kesimpulan
Dalam SQL Server, jumlah kaedah mengira operasi operasi bergantung kepada faktor -faktor seperti saiz data, keperluan prestasi, dan versi SQL Server. "Kemahiran ayat penetapan agregat" masih merupakan pilihan yang boleh dilaksanakan untuk kemas kini kecekapan tinggi, dan fungsi tetingkap menyediakan tatabahasa yang lebih langsung dalam versi SQL Server yang lebih baru. Pertimbangkan penyelesaian sub -query dan kursor yang berkaitan untuk mencapai fleksibiliti dan kawalan. Adalah disyorkan untuk melaksanakan ujian penanda aras untuk menentukan cara terbaik dalam senario tertentu.
<code class="language-sql">SELECT somedate, somevalue, ( SELECT SUM(somevalue) FROM TestTable b WHERE b.somedate < a.somedate ) AS RunningTotal FROM TestTable a</code>
Atas ialah kandungan terperinci Bagaimana cara mengira jumlah yang berkesan dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!