Rumah > Artikel > pangkalan data > Bagaimana untuk Memasukkan Semua Bulan dalam Purata Bulanan, Walaupun dengan Nilai Null?
Mengekstrak Semua Bulan daripada Julat Tarikh Yang Ditentukan, Termasuk Yang Bernilai Nol
Apabila mengira purata bulanan berdasarkan julat tarikh, ia adalah penting untuk memasukkan bulan dengan nilai sifar atau tiada. Ini memastikan bahawa semua bulan dalam tempoh yang dinyatakan diambil kira.
Untuk mencapai ini dalam MySQL, satu pendekatan adalah untuk mencipta jadual berasingan yang mengandungi semua bulan yang mungkin dalam julat yang diberikan. Jadual ini, yang dirujuk sebagai "jadual tarikh", boleh diisi dengan tarikh, tahun dan atribut lain yang berkaitan.
Menggunakan jadual tarikh, anda boleh melakukan LEFT JOIN dengan jadual data asal anda . Operasi LEFT JOIN memastikan semua baris daripada jadual tarikh disertakan dalam keputusan, walaupun tiada baris yang sepadan dalam jadual asal. Hasilnya, output akan menunjukkan semua bulan dalam julat yang ditentukan, tidak kira sama ada mereka mempunyai data.
Berikut ialah contoh pertanyaan yang menunjukkan pendekatan ini:
<code class="sql">SELECT `DT`.`myYear`, `DT`.`myMonth`, AVG(`myTable`.`value1`) AS `avg_value_1`, AVG(`myTable`.`value2`) AS `avg_value_2` FROM `dateTable` AS `DT` LEFT JOIN `myTable` ON `dateTable`.`myDate` = `myTable`.`save_date` WHERE `dateTable`.`myDate` BETWEEN '2009-01-01' AND '2009-07-01' GROUP BY `DT`.`myYear`, `DT`.`myMonth`</code>
Pertanyaan ini akan kembali sepanjang bulan dari Januari hingga Julai 2009, termasuk yang tiada data dalam jadual asal. Fungsi AVG() akan mengendalikan pengagregatan nilai untuk bulan dengan data, manakala operasi LEFT JOIN memastikan bahawa bulan dengan nilai nol diberikan purata sifar.
Dengan menggunakan jadual tarikh dan melakukan LEFT JOIN, anda boleh mengekstrak dengan berkesan semua bulan dalam julat tarikh tertentu, tanpa mengira kehadiran atau ketiadaan data, membolehkan analisis komprehensif purata bulanan.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Semua Bulan dalam Purata Bulanan, Walaupun dengan Nilai Null?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!