SQL server用于每个不同的总和
我想得到一份清单,其中包含不同国家的名称,每个国家的雇员人数。我不能在SQL server中使用for each循环。有什么方法可以实现我想要的吗?我可以使用where country='input country',但我不想对每个国家都这样做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
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()
部分移除。