根据条件按国家和指数计算 SQL 分区中的市场总和

Calculate sum of market in SQL partition by country and index with conditions

我有一个数据集,其中我必须计算 SQL 服务器分区中的市场总和,按国家和指数划分,条件如下:

如果按国家/地区索引仅为 1,则 Indexmark 输出将为 0,如果按国家/地区索引=>1,则将取市场价值总和而不取索引 1 市场价值

需要说明的是,如果索引值为 1,则索引标记应为 0,如果索引为 1 且大于 1,则取市场价值之和,不包括索引 1 的市场价值

输入:

Country Index Market  
--------------------
India    1     100
US       1     200
UK       7     400
US       6     600
UK       3     800

输出:

Country Index Market  IndMark
----------------------------
India    1     100        0
US       1     200      600
UK       7     400     1200
US       6     600      600
UK       3     800     1200

我尝试使用下面的 SQL 查询,但它没有给我预期的结果

SELECT 
    Country, Index, Market,
    SUM(Market) OVER (PARTITION BY Country, (Index > 1) AS IndMark
FROM 
    table

具有SUM()window功能:

SELECT *,
       COALESCE(SUM(CASE WHEN [Index] > 1 THEN [Market] END) OVER (PARTITION BY [Country]), 0) [IndexMark] 
FROM tablename

参见demo