Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melakukan Pengiraan Bersarang Menggunakan Lajur Dikira dalam Pertanyaan SQL Tunggal?
Menggunakan Lajur Dikira untuk Memudahkan Pengiraan Selanjutnya
Dalam bidang pengurusan pangkalan data, lajur yang dikira menawarkan mekanisme yang mudah untuk memperoleh nilai baharu berdasarkan data sedia ada. Walau bagaimanapun, apabila melakukan pengiraan tambahan menggunakan nilai terbitan ini dalam pertanyaan yang sama, tahap kerumitan tertentu timbul.
Dalam senario ini, anda mempunyai jadual dengan tiga lajur berangka (LajurA, LajurB dan LajurC ). Paparan awal anda berjaya mengira calccolumn1 sebagai jumlah bagi ColumnA dan ColumnB. Walau bagaimanapun, melanjutkan pengiraan ini untuk memasukkan calccolumn2 - hasil bagi calccolumn1 dan ColumnC - menimbulkan cabaran.
Untuk mengatasi halangan ini, anda boleh menggunakan kuasa pertanyaan bersarang. Dengan merangkum pengiraan awal dalam subkueri, anda mencipta set hasil perantaraan yang boleh dirujuk dalam operasi seterusnya. Coretan kod berikut menunjukkan pendekatan ini:
Select ColumnA, ColumnB, calccolumn1, calccolumn1 / ColumnC as calccolumn2 From ( Select ColumnA, ColumnB, ColumnC, ColumnA + ColumnB As calccolumn1 from t42 );
Dalam pertanyaan yang disemak ini, subkueri mengira calccolumn1, yang kemudiannya tersedia untuk digunakan dalam pertanyaan luar untuk mengira calccolumn2.
Sebagai alternatif, jika prestasi bukan kebimbangan utama, anda hanya boleh meniru pengiraan awal dalam bahagian luar pertanyaan:
Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1, (ColumnA + ColumnB) / ColumnC As calccolumn2 from t42;
Pendekatan ini menghasilkan hasil yang sama tetapi boleh menyebabkan kecekapan berkurangan jika pengiraan adalah intensif secara pengiraan.
Dengan memanfaatkan teknik ini, anda boleh memanfaatkan kepelbagaian lajur yang dikira untuk melakukan pengiraan yang rumit dalam paparan yang sama, memperkasakan anda untuk mengeluarkan cerapan yang lebih mendalam daripada anda data.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Pengiraan Bersarang Menggunakan Lajur Dikira dalam Pertanyaan SQL Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!