sql group, игнорируя регистр и суффикс или заключительную букву - PullRequest
0 голосов
/ 14 мая 2018

У меня есть такая таблица:

enter image description here

Я собираюсь посчитать количество категорий и сколько строк в каждой категории. Я использовал этот запрос:

enter image description here

Но, к сожалению, яблоки считаются отдельной категорией, потому что в конце они имеют "s".

enter image description here

1 Ответ

0 голосов
/ 14 мая 2018

Я бы порекомендовал вам взглянуть на некоторые комментарии и реструктурировать ваши данные, так как я думаю, что это вызовет проблемы в будущем, но этот запрос будет делать то, что вы хотите, но он не очень хороший.

CTE длятестирование:

WITH fruit_table(Fruit, No_Fruit)
AS (
SELECT 'Apple', 3
UNION ALL
SELECT 'Apples', 2
UNION ALL
SELECT 'Orange', 1
UNION ALL
SELECT 'oranges', 2)

Запрос:

 SELECT DISTINCT
        LOWER(CASE
                  WHEN right(fruit, 1) = 's'
                  THEN left(fruit, -1)
                  ELSE fruit
              END),
        SUM(No_Fruit)
 FROM fruit_table
 GROUP BY LOWER(CASE
                    WHEN right(fruit, 1) = 's'
                    THEN left(fruit, -1)
                    ELSE Fruit
                END);

Будет более элегантный способ получить желаемые результаты, и лучшим решением будет исправить вашу схему, но ....это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...