Mengira Purata Lajur Berbilang Jadual
Dalam konteks operasi jadual pangkalan data, selalunya perlu untuk mengira nilai purata merentas berbilang lajur. Ini menjadi amat berguna apabila kita perlu meringkaskan atau menganalisis data. Mari kita pertimbangkan contoh khusus untuk menunjukkan proses.
Senario:
Kami mempunyai jadual bernama "Permintaan" dengan lajur yang mewakili nilai R1, R2, R3, R4, dan R5. Kami ingin menentukan purata nilai ini untuk setiap rekod dalam jadual.
Pendekatan Awal:
Untuk mencapai ini, anda mula-mula mencuba pertanyaan berikut:
Select Req_ID, Avg(R1+R2+R3+R4+R5) as Average from Request Group by Req_ID
Walau bagaimanapun, pertanyaan ini tidak memberikan hasil yang dimaksudkan. Ia mengira jumlah nilai, bukan purata.
Punca:
Apabila menggunakan fungsi agregat AVG, adalah penting untuk memastikan bahawa hujah yang diberikan ialah ungkapan yang menilai kepada satu nilai angka. Dalam kes ini, anda menambah nilai berbilang lajur, yang menghasilkan jumlah.
Penyelesaian:
Terdapat dua kaedah yang boleh anda gunakan untuk mengira purata dengan betul:
1. Menggunakan Subquery (sintaks 2008):
SELECT *, (SELECT AVG(c) FROM (VALUES(R1), (R2), (R3), (R4), (R5)) T (c)) AS [Average] FROM Request
Dalam pendekatan ini, subkueri digunakan untuk mengira purata. Subkueri memilih nilai daripada setiap lajur dan menganggapnya sebagai baris yang berasingan. Kemudian, fungsi agregat AVG digunakan untuk mengira purata.
2. Menggunakan UNION dalam Subquery (sintaks 2005):
SELECT *, (SELECT AVG(c) FROM (SELECT R1 UNION ALL SELECT R2 UNION ALL SELECT R3 UNION ALL SELECT R4 UNION ALL SELECT R5) T (c)) AS [Average] FROM Request
Kaedah ini menggunakan UNION untuk menggabungkan semua nilai daripada lajur yang berbeza ke dalam satu lajur. Fungsi agregat AVG kemudiannya digunakan pada lajur gabungan untuk mengira purata.
Keputusan:
Kedua-dua pendekatan akan memberikan nilai purata yang betul untuk setiap rekod dalam Permintaan meja. Dengan mengikuti mana-mana penyelesaian ini, anda boleh mengira purata berbilang lajur jadual dengan tepat dan memperoleh hasil yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Purata Berbilang Lajur dalam Jadual Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!