DISTINCT
не единственный инструмент здесь. Вы можете использовать GROUP BY
с нормализованной версией текста столбца, чтобы объединить все различные оболочки и конечные пробелы в один. Например:
SELECT name, fruit, count(fruit) AS cnt
FROM test
GROUP BY name, trim(upper(fruit));
дает мне
name fruit cnt
---------- ---------- ----------
Liu Apple 1
Liu Grape 1
Mary Apple 3
Mary Orange 1
Однако, похоже, вы хотите общее количество разных видов фруктов на человека. Итак ...
WITH totals(name, fruit) AS
(SELECT name, fruit
FROM test
GROUP BY name, trim(upper(fruit)))
SELECT name, count(fruit) AS fruits
FROM totals
GROUP BY name;
дает мне
name fruits
---------- ----------
Liu 2
Mary 2