Първото нещо е, че трябва да нормализирате структурата си, да се отървете от стойностите, разделени със запетая, и да използвате друга таблица, за да свържете местоположенията си с таблицата си с публикации, вижте Нормализация на базата данни ,за вашата текуща структура това, което можете да направите, е да получите всички местоположения от вашата таблица и да ги вмъкнете в нова таблица, след което да използвате агрегатна функция в новата си таблица
CREATE TABLE locaions (cities CHAR(255)) ;
SET @S1 = CONCAT(
"INSERT INTO locaions (cities) VALUES ('",
REPLACE(
(SELECT
GROUP_CONCAT(`Location`) AS DATA
FROM
`posts`),
",",
"'),('"
),
"');"
) ;
PREPARE stmt1 FROM @s1 ;
EXECUTE stmt1 ;
Това ще вмъкне всички местоположения с повтарящи се данни в таблицата с местоположенията и след това ще използвате заявката по-долу, за да получите желания брой
SELECT cities,count(*)
FROM locaions
group by cities