Gebruik substring_index
om het eerste land in de ;
. te krijgen -gescheiden lijst.
SELECT
SUBSTRING_INDEX(COUNTRY, ';', 1) AS COUNTRY
SUM(IF(QUANTITY IS NULL OR QUANTITY = 0,1,QUANTITY) * EACH) AS PRICE
FROM table1
GROUP BY COUNTRY
Het zou veel ingewikkelder zijn als je alle rijen zou willen behouden waar elk land verschijnt (in dat geval zou ik aanraden om het in PHP te doen, niet in MySQL, aangezien MySQL geen ingebouwde manier heeft om explode()
).