У меня есть следующие таблицы.Нужна помощь при написании SQL-запроса
Customer_table
Customer_ID | Фамилия | Имя: City_ID | Region_ID | Country_IDCountry_table
Country_ID | СтранаRegion_table
Регион_ID | Регион | Country_IDCity_table
City_ID | Город | Region_ID | Country_ID
Мне нужно найти количество клиентов по городу, то есть для всех стран, для всех регионов в странах, для всех городов региона, мне нужно получить номер. клиентов в каждом городе.
Например, я написал следующий SQL, чтобы получить no. клиентов в каждой стране:
SELECT a.country_id , b.country,count(*)
FROM Customer_Table a INNER JOIN Country_Table b
ON a.country_id = b.country_id
GROUP BY b.country , b.country_id ;
и получить номер. клиенты в каждом регионе для конкретной страны:
SELECT a.region_id , b.region , count(*)
FROM Customers_table a INNER JOIN Region_Table b
ON a.region_id = b.region_id
WHERE a.country_id ='USA' AND b.country_id ='USA'
GROUP BY region_id , country ;
Что мне нужно, чтобы найти это количество клиентов города-мудрый, то есть, для всех стран, для всех регионов страны, для всех городов в регионе , мне нужно получить no. клиентов в каждом городе, что-то вроде
Country | Region | City | no.of customers
USA | CA | San Francisco | 53
USA | CA | Los Angeles | 45
USA | CA | Sacramento | 16
USA | WA | Seattle | 46
USA | WA | Olympia | 9
UK | England | London | 89
UK | England | Nottingham | 71
UK | Wales | Cardiff | 69
UK | Wales | Newport | 23
..................and so on for other countries.
@Gaby, так что вы говорите, что таблица клиентов не обязательно должна иметь регионы региона и страны? – Zaki
Таблица клиентов не нуждается в них, если они находятся в таблице города. Строго таблица города не нуждается в стране, если у нее есть таблица регионов. Если вы сохраните избыточные данные, как это, рано или поздно ваша база данных будет содержать противоречия. –
@ Zaki, да потому, что регион можно найти по городу, и страну можно найти в этом регионе .. это работает, потому что его клиент может принадлежать только одному городу, городу к одному региону и региону в одну страну .. Поэтому каждой таблице нужно только ссылаться на родительский, а другой нет. –