Po pierwsze, powinieneś znormalizować swoją strukturę, pozbyć się wartości oddzielonych przecinkami i użyć innej tabeli, aby powiązać swoje lokalizacje z tabelą postów, patrz Normalizacja bazy danych , dla twojej obecnej struktury, możesz pobrać wszystkie lokalizacje ze swojej tabeli i wstawić je do nowej tabeli, a następnie użyć funkcji agregacji na nowej tabeli
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 ;
Spowoduje to wstawienie wszystkich lokalizacji z powtarzającymi się danymi w tabeli lokalizacji, a następnie użycie poniższego zapytania, aby uzyskać żądaną liczbę
SELECT cities,count(*)
FROM locaions
group by cities