У меня есть две таблицы
первая таблица называется: tblprovince
create table (
provinceid int not null primary key (1,1) ,
provinceNme nvarchar(max),
description nvarchar(max))
вторая таблица называется tblcity:
create table tblcity(
cityid int identity (1,1),
CityName nvarchar(max),
population int,
provinceid int foreign key references tblprovince(provinceid)
);
Мне нужно перечислить все провинции, в которых есть как минимум два больших города. Крупный город определяется как имеющий население не менее одного миллиона жителей. Запрос должен возвращать следующие столбцы:
- tblProvince.ProvinceId
- tblProvince.ProvinceName
- производный столбец с именем LargeCityCount, в котором представлено общее количество крупных городов провинции.
select p.provinceId, p.provincename, citysummary.LargeCityCount
from tblprovince p
cross apply (
select count(*) as LargeCityCount from tblcity c
where c.population >= 1000000 and c.provinceid=p.provinceid
) citysummary
where citysummary.LargeCityCount
Верен ли этот запрос?
Существуют ли другие методы, позволяющие мне достичь моей цели?