我有一个数据集,在其中我必须按国家和索引计算Server分区的市场总量,并在此条件下进行索引:
如果按国家计算,指数仅为1,则指数产出为0,如果按国家分列的index=>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发布于 2020-11-24 07:28:35
使用SUM()窗口函数:
SELECT *,
COALESCE(SUM(CASE WHEN [Index] > 1 THEN [Market] END) OVER (PARTITION BY [Country]), 0) [IndexMark]
FROM tablename见演示。
https://stackoverflow.com/questions/64981759
复制相似问题