Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengira Purata Berbilang Lajur dalam Jadual Pangkalan Data?

Bagaimana untuk Mengira Purata Berbilang Lajur dalam Jadual Pangkalan Data?

DDD
Lepaskan: 2024-12-31 08:39:10
asal
854 orang telah melayarinya

How to Calculate the Average of Multiple Columns in a Database Table?

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan