SQL server用于每个不同的总和

SQL server用于每个不同的总和,sql,sql-server,Sql,Sql Server,我想得到一份清单,其中包含不同国家的名称,每个国家的雇员人数。我不能在SQL server中使用for each循环。有什么方法可以实现我想要的吗?我可以使用where country='input country',但我不想对每个国家都这样做 Select distinct Country, SUM(Test.[Number of Manager]) over () AS 'Number of Parts Staff/Manager', Count(Test.[Name

我想得到一份清单,其中包含不同国家的名称,每个国家的雇员人数。我不能在SQL server中使用for each循环。有什么方法可以实现我想要的吗?我可以使用where country='input country',但我不想对每个国家都这样做

Select   distinct Country,
     SUM(Test.[Number of Manager]) over () AS 'Number of Parts Staff/Manager',
     Count(Test.[Name]) over () AS 'Number of Test'

From Test;

我认为您正在寻找:


不要使用
DISTINCT
,而应使用
分组方式

Select Country,
       SUM([Number of Manager]) AS 'Number of Parts Staff/Manager',
       Count([Name]) AS 'Number of Test'
From Test
GROUP BY Country

您可以使用
pation by

Select   Country,
     SUM(Test.[Number of Manager]) over (partition by Country order by Country) AS 'Number of Parts Staff/Manager',
     Count(distinct Test.[Name]) over (partition by Country Country) AS 'Number of Test'

From Test;
select country,Count(distinct Test.[Name]) AS 'Number of Test', SUM(Test.[Number of Manager]) AS 'Number of Parts Staff/Manager' from test
group by country
或者使用按国家分组的非常简单的方法

Select   Country,
     SUM(Test.[Number of Manager]) over (partition by Country order by Country) AS 'Number of Parts Staff/Manager',
     Count(distinct Test.[Name]) over (partition by Country Country) AS 'Number of Test'

From Test;
select country,Count(distinct Test.[Name]) AS 'Number of Test', SUM(Test.[Number of Manager]) AS 'Number of Parts Staff/Manager' from test
group by country

你需要按国家分组,为什么要否决这个问题?这背后的逻辑是什么?我没有投反对票,但我看到很多“rtfm”问题被投反对票,也许这就是原因…可能是错误消息的重复,错误消息不可能来自我上面展示的SQL。请确保您已将
总和
计数
行更改为匹配。因此,将
OVER()
部分移除。