SQL Count часть строк - PullRequest
       3

SQL Count часть строк

0 голосов
/ 08 февраля 2019

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

FirstName LastName; Country; Restofaddress

Я попытался разделить столбец и удалить ненужные части столбца, а затем сосчитать уникальные страны, ноЯ не могу объединить запросы в один раз.Как будет выглядеть один запрос для этого?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Вы можете использовать SUBSTRING_INDEX для извлечения части страны из строки, а затем COUNT DISTINCT значения этого:

SELECT COUNT(DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(data, ';', 2), ';', -1))
FROM test

Демонстрация на dbfiddle

0 голосов
/ 08 февраля 2019

Этот запрос даст вам количество уникальных стран:

SELECT 
COUNT(DISTINCT REGEXP_SUBSTR (description, '[^;]+', 1, 2)) as unique_country_count
FROM address;

Примечание. Этот запрос предполагает, что имя вашей таблицы называется адресом, а столбец - описанием.

ПримерДанные:

description
----------------------------------------
FirstName LastName; USA; Restofaddress
FirstName LastName; USA; Restofaddress
FirstName LastName; China; Restofaddress

Уникальными странами являются США и Китай, поэтому число составляет 2.

Результат:

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