Вы можете использовать следующий запрос, используя LOCATE
:
SELECT
MIN(ID) AS ID,
CASE WHEN LOCATE('Rhodo', science_name_short) = 1 THEN 'Rhododendron species' ELSE science_name_short END AS 'NAME',
SUM(database_value) AS 'Number'
FROM species_data
GROUP BY CASE WHEN LOCATE('Rhodo', science_name_short) = 1 THEN 'Rhododendron species' ELSE science_name_short END
Вы также можете использовать решение, используя LTRIM
иLEFT
:
SELECT
MIN(ID) AS ID,
CASE WHEN LEFT(LTRIM(science_name_short), 5) = 'Rhodo' THEN 'Rhododendron species' ELSE science_name_short END AS 'NAME',
SUM(database_value) AS 'Number'
FROM species_data
GROUP BY CASE WHEN LEFT(LTRIM(science_name_short), 5) = 'Rhodo' THEN 'Rhododendron species' ELSE science_name_short END
демо: http://sqlfiddle.com/#!9/7ad33a/5/1