在 Sql Server 中交叉应用与 CTE

问题描述

我有两张桌子
第一个表被命名为: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,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

这个查询是否正确?
还有其他方法可以让我实现目标吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)