Wydaje się, że nie otrzymujesz zbyt wielu odpowiedzi - więc oto coś, jeśli nie zdobędziesz odpowiedniego „jak to zrobić w czystym SQL”. Zignoruj to rozwiązanie, jeśli jest coś SQL - to tylko kodowanie obronne, a nie eleganckie.
Jeśli chcesz uzyskać sumę wszystkich danych z tego samego sezonu, po co usuwać zduplikowane rekordy - po prostu wynieś to na zewnątrz, uruchom pętlę foreach, zsumuj wszystkie dane z tą samą wartością sezonu, zaktualizuj tabelę odpowiednimi wartościami i usuń niepotrzebne wpisy. Oto jeden ze sposobów na zrobienie tego (pseudokod):
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]