Для меня это был бы один запрос. У вас есть суб-выбор там, но это все еще один запрос, кажется.

озможно ?

Допустим, у меня есть список адресов, с множеством повторяющихся записей. Мне нужно отфильтровать все дубликаты, потому что некоторые адреса имеют несколько разные имена, но одинаковый почтовый индекс и номер телефона.

Сначала я делаю GROUP BY на почтовый индекс и телефон.

SELECT name, address, postalcode, place, phone
FROM addresses
GROUP BY postalcode, phone

Но потом я получаю случайные имена. Я хотел бы получитьЛучший имя, то есть имя с наибольшим количеством записей на почтовый индекс / телефон.

Поэтому я подумал о следующем. Здесь я использую функцию SUBSTRING_INDEX, чтобы получить только первый элемент в group_concat (в нем нет имен со строкой '~~'):

SELECT SUBSTRING_INDEX(
         GROUP_CONCAT(DISTINCT name ORDER BY COUNT(name) DESC SEPARATOR '~~')
       , '~~', 1),
       address,
       postalcode,
       place,
       phone
FROM addresses
GROUP BY postalcode, telephone

но я получаю «недопустимое использование групповой функции».

Как мне получить GROUP_CONCAT для заказа по количеству раз, когда имя встречается?

Ответы на вопрос(1)

Ваш ответ на вопрос