CREATE TABLE #T_Person ( FName VARCHAR(20), FCity VARCHAR(20), FAge INT, FSalary INT ) INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Tom','BeiJing',20,3000); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Tim','ChengDu',21,4000); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Jim','BeiJing',22,3500); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Lily','London',21,2000); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('John','NewYork',22,1000); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('YaoMing','BeiJing',20,3000); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Swing','London',22,2000); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Guo','NewYork',20,2800); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('YuQian','BeiJing',24,8000); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Ketty','London',25,8500); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Kitty','ChengDu',25,3000); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Merry','BeiJing',23,3500); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Smith','ChengDu',30,3000); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Bill','BeiJing',25,2000); INSERT INTO #T_Person(FName,FCity,FAge,FSalary) VALUES('Jerry','NewYork',24,3300); SELECT count(*) FROM #T_Person /* 查询每个工资小于 5000元的员工信息(城市以及年龄) ,并且在 每行中都显示所有工资小于5000元的员工个数 */ WITH tempCity AS ( SELECT a.* FROM #T_Person a WHERE FSalary<5000 ) SELECT a.FCITY , a.FAGE, COUNT(*) CountGroup, (SELECT COUNT(*) FROM tempCity ) CountTotal FROM #T_Person a INNER JOIN tempCity b ON b.FCity=a.FCity AND b.FName=a.FName AND b.FAge=a.FAge GROUP BY a.FCity, a.FAge SELECT * FROM #T_Person ORDER BY FCity, FSalary /* 查询每个工资小于 5000元的员工信息(城市以及年龄) ,并且在 每行中都显示所有工资小于5000元的员工个数 */ SELECT FCITY , FAGE , COUNT(*) CountGroup, ( SELECT COUNT(* ) FROM #T_Person WHERE FSALARY<5000 ) CountTotal FROM #T_Person WHERE FSALARY<5000 GROUP BY FCITY , FAGE /* 使用开窗函数 */ SELECT FCity, FAge, COUNT(*) OVER() FROM #T_Person WHERE FSalary<5000 ORDER BY FCity, FAge /* 使用开窗函数 */ SELECT FCity, FAge, COUNT(*) OVER(PARTITION BY FCity) FROM #T_Person WHERE FSalary<5000 ORDER BY FCity, FAge