Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggunakan Fungsi Agregat dalam Pernyataan SQL UPDATE?

Bagaimanakah Saya Boleh Menggunakan Fungsi Agregat dalam Pernyataan SQL UPDATE?

Linda Hamilton
Lepaskan: 2024-12-25 00:17:08
asal
850 orang telah melayarinya

How Can I Use Aggregate Functions in SQL UPDATE Statements?

Cara Menggunakan Fungsi Agregat dalam Pertanyaan KEMASKINI SQL

Dalam SQL, selalunya perlu mengemas kini nilai jadual berdasarkan data agregat daripada yang lain meja. Walau bagaimanapun, pertanyaan KEMASKINI standard tidak menyokong fungsi agregat seperti SUM atau GROUP BY.

Untuk menyelesaikannya, ikut langkah berikut:

Contoh:

Pertimbangkan senario berikut: Anda ingin mengemas kini lajur medan1 dalam jadual jadual1 dengan jumlah nilai medan2 untuk setiap medan3 daripada jadual table2.

Pelaksanaan Salah:

UPDATE table1
SET field1 = SUM(table2.field2)
FROM table1
INNER JOIN table2 ON table1.field3 = table2.field3
GROUP BY table1.field3
Salin selepas log masuk

Pertanyaan ini tidak betul kerana klausa SET tidak boleh menggunakan fungsi agregat dan klausa GROUP BY tidak disokong dalam konteks ini.

Betul Pelaksanaan:

Untuk mencapai ini dengan betul, gunakan subkueri untuk mengira agregat dan sertainya dengan jadual sasaran untuk kemas kini:

UPDATE t1
SET t1.field1 = t2.field2Sum
FROM table1 t1
INNER JOIN (select field3, sum(field2) as field2Sum
   from table2
  group by field3) as t2
on t2.field3 = t1.field3 
Salin selepas log masuk

Pertanyaan ini mula-mula mencipta subkueri yang mengira jumlah medan2 untuk setiap medan3 dalam jadual2, mengagregatkan data dengan berkesan. Hasilnya disimpan dalam jadual sementara, yang kemudiannya digabungkan dengan jadual1 menggunakan lajur medan3 sebagai syarat gabungan. Lajur medan1 dalam jadual1 kemudian dikemas kini dengan nilai field2Sum yang sepadan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Fungsi Agregat dalam Pernyataan SQL UPDATE?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan