у меня проблема с кодом для получения конкретной информации из базы данных. Я хочу, чтобы количество городов повторялось в каждом CountryCode (стране).
что получается до этого момента, так это количество городов, повторяющихся в каждой группе city.Name (группы с одинаковым значением city.Name),
SELECT count(*) as numberOfCitiesRepeated,city.CountryCode from city
group by city.Name
having count(*) >1
order by countryCode
и это хорошо, потому что мне нужно только подсчитать количество групп значений по CountryCode (стране), и я решу проблему, но я попытался:
COUNT(SELECT count(*) as numberOfCitiesRepeated,city.CountryCode from city
group by city.Name
having count(*) >1
order by countryCode) from city group by city.CountryCode
и это не сработало, оно не компилируется.
это база данных mysql, которую я использую:
и вот что возвращает мне первый запрос:
ах да, я снова думаю об этом, и я думаю, что первый запрос возвращает города с одинаковым названием, без учета того, что города с одинаковым названием могут принадлежать разным странам, и я не мог вернуть количество повторяющихся городов для каждой страны, потому что город с одинаковым названием может находиться в разных странах. я прав?
Самое странное — выбрать что-то одно, а сгруппировать по другому.
Попробуйте сделать GROUP BY city.CountryCode, city.Name
я попробовал <code>SELECT city.Name, city.CountryCode FROM city GROUP BY city.Name, city.CountryCode HAVING count() > 1 заказ по коду страны<код>, как вы можете видеть, я изменил "количество ()" для "city.Name", потому что я хотел проверить, было ли это имя в базе данных 2 или несколько раз для одного и того же CountryCode, и я проверил его, и все в порядке. Теперь последний вопрос, который у меня есть, это «если этот запрос вернет мне повторяющееся название города и его CountryCode, как я могу подсчитать количество регистров, которые имеют то же самое? CountryCode из этого запроса?"
Я решил свою проблему с помощью Эрика и концепции mysql под названием VIEWS.
Я мог бы получить количество городов, повторяющихся в определенной стране, используя 2 запроса. В этом примере я получаю количество городов, повторяющихся в Китае, код страны которых равен CHN.
С помощью этого запроса вы создаете представление, в котором повторяются города из страны и код страны, которой они принадлежат.
CREATE VIEW citiesRepeatedInCountries as
SELECT city.Name, city.CountryCode FROM city
GROUP BY city.Name, city.CountryCode
HAVING count(*) > 1
order by countryCode
С помощью этого запроса вы подсчитываете количество регистров, код страны которых равен CHN.
select count(*) as numOfCitiesRepeatedInChina from world.citiesRepeatedInCountries
where world.citiesRepeatedInCountries.CountryCode='CHN'
:)
Научитесь правильно использовать
GROUP BY
.city.CountryCode
должен быть вGROUP BY
.