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

Bagaimanakah Saya Boleh Menggunakan Fungsi Agregat Seperti SUM dalam Pertanyaan SQL UPDATE?

Linda Hamilton
Lepaskan: 2025-01-01 10:03:09
asal
355 orang telah melayarinya

How Can I Use Aggregate Functions Like SUM in an SQL UPDATE Query?

Fungsi Agregat dalam Pertanyaan Kemas Kini SQL

Soalan tersebut bertujuan untuk memahami bagaimana fungsi agregat, seperti SUM, boleh digunakan dalam kemas kini SQL pertanyaan. Contoh yang disediakan cuba mengemas kini nilai dalam jadual berdasarkan jumlah nilai daripada jadual lain. Walau bagaimanapun, ia menghadapi had bahawa penyata SET tidak menyokong SUM dan GROUP BY.

Untuk menyelesaikan isu ini, penyelesaian menggunakan subkueri untuk mengira jumlah dan kemudian menggunakan keputusan dalam pertanyaan kemas kini. Coretan kod berikut menunjukkan pendekatan yang diperbetulkan:

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

Dalam pertanyaan yang diperbetulkan ini:

  1. Subkueri ditakrifkan untuk mengira jumlah medan2 bagi setiap nilai unik medan3 dalam jadual2 . Hasilnya disimpan dalam jadual sementara atau paparan bernama t2.
  2. Pertanyaan kemas kini menggunakan JOIN untuk menggabungkan jadual1 dengan t2 berdasarkan medan lajur biasa3.
  3. Pernyataan SET mengemas kini lajur medan1 dalam jadual1 kepada medan2Jumlah nilai yang sepadan yang dikira dalam subkueri.

Dengan menggunakan subkueri, ini pendekatan berkesan menangani had penyata SET dan membenarkan penggunaan fungsi agregat dalam pertanyaan kemas kini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Fungsi Agregat Seperti SUM dalam Pertanyaan 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