Вопрос, чтобы получить правильный код для конкретного запроса из базы данных

у меня проблема с кодом для получения конкретной информации из базы данных. Я хочу, чтобы количество городов повторялось в каждом 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 должен быть в GROUP BY.

Eric 27.05.2019 23:54

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

Nickels 28.05.2019 00:05

Самое странное — выбрать что-то одно, а сгруппировать по другому.

Strawberry 28.05.2019 00:07

Попробуйте сделать GROUP BY city.CountryCode, city.Name

Eric 28.05.2019 00:09

я попробовал <code>SELECT city.Name, city.CountryCode FROM city GROUP BY city.Name, city.CountryCode HAVING count() > 1 заказ по коду страны<код>, как вы можете видеть, я изменил "количество ()" для "city.Name", потому что я хотел проверить, было ли это имя в базе данных 2 или несколько раз для одного и того же CountryCode, и я проверил его, и все в порядке. Теперь последний вопрос, который у меня есть, это «если этот запрос вернет мне повторяющееся название города и его CountryCode, как я могу подсчитать количество регистров, которые имеют то же самое? CountryCode из этого запроса?"

Nickels 28.05.2019 00:30
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
5
32
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я решил свою проблему с помощью Эрика и концепции 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'

:)

Другие вопросы по теме