我需要为表的每个分区计算-1值的出现次数。如果一个分区仅包含两行,我可以使用min,max函数,但是对于多于两行的分区,这不是解决方案。
CREATE TABLE #Data(ID int,name_of_institution varchar(200),wasko_id int)
INSERT INTO #Data(ID,name_of_institution,wasko_id)
SELECT 4822,'Bailiff xxx',-1 union all
SELECT 4820,'Bailiff xxx',-1 union all
SELECT 4819,'Bailiff xxx',2332 union all
SELECT 4700,'Bailiff yyy',-1 union all
SELECT 4701,'Bailiff yyy',222
select DENSE_RANK() over (order by name_of_institution) as DR,* from #Data
我希望'Bailiff xxx'分区的输出为2,而'Bailiff yyy'分区的输出为1。
答案 0 :(得分:2)
使用像sumif这样的excel:条件插入的总和,其中True为1,而False为0:iif(condition, 1, 0)
select name_of_institution, sum(iif(wasko_id = -1, 1, 0)) as DR
from #Data
group by name_of_institution