Количество и группа, содержащая заданные критерии mysql

0

У меня есть данные, которые пользователи представляют, формулировки не совсем одинаковы, но есть сходство, см. Ниже пример

 ---No  | Catergory
    526 HIV
    418 HIV/AIDs
    207 RVD
    86  HIV/AIDS.
    84  HIV INFECTION
    58  HIV PATIENT ON HAART
    54  RETROVIRAL DISEASE
    44  LIPODYSTROPHY
    39  MALARIA
    36  HIV MANAGEMENT
    36  Chronic Myeloid Leukemia

Я хочу получить общее количество и так, чтобы все строки с ВИЧ, ВИЧ, Ретро были сгруппированы как одна под категорией, подобной этой

    category | number
    ------------------
    HIV      |    1500
   ----------------------
    MALARIA  |    39
......

Какие-либо предложения?

Теги:
mysqli

1 ответ

0

Группа использует выражение CASE, что-то вроде этого:

SELECT
    CASE WHEN Category LIKE '%HIV%' OR Category LIKE '%Retro%'
         THEN 'HIV'
         ELSE Category END AS Category,
    COUNT(*) AS number
FROM yourTable
GROUP BY
    CASE WHEN Category LIKE '%HIV%' OR Category LIKE '%Retro%'
         THEN 'HIV'
         ELSE Category END;

Точная логика, которую вы используете для сопоставления различных категорий в ведро ВИЧ, может отличаться от того, что я перечислял выше. Возможно, вам придется просто использовать IN и сравнить с полным списком категорий для сопоставления.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню