Bạn dường như không nhận được nhiều câu trả lời - vì vậy đây là điều nếu bạn không hiểu đúng 'cách thực hiện trong SQL thuần túy'. Bỏ qua giải pháp này nếu có bất cứ điều gì SQLish - nó chỉ là một mã hóa phòng thủ, không thanh lịch.
Nếu bạn muốn nhận tổng tất cả dữ liệu có cùng phần, tại sao phải xóa các bản ghi trùng lặp - chỉ cần lấy nó ra bên ngoài, chạy vòng lặp foreach, tính tổng tất cả dữ liệu có cùng giá trị phần, cập nhật bảng với các giá trị phù hợp và xóa các mục nhập không cần thiết. Đây là một trong những cách để làm điều đó (mã giả):
productsArray = SELECT * FROM products
processed = array (associative)
foreach product in productsArray:
if product[season] not in processed:
processed[season] = product[quantity]
UPDATE products SET quantity = processed[season] WHERE id = product[id]
else:
processed[season] = processed[season] + product[quantity]
DELETE FROM products WHERE id = product[id]