我正在尝试将下面的 Tableau 计算字段转换为 SQL:
计算字段#1:
{ FIXED SM, Date, DC:
MIN(
IF svb = 'S' THEN
IF sg = 'X8' AND p = 'N' THEN s * 2
ELSE s
END
END)}
计算字段 #2:s 是连续序列的不同计数
如何用 SQL 编写这个?
select
case
when AST = 'S' and sg = 'x8' and p = 'N'
then count(distinct s) * 2
else count(distinct s)
end as CountS
from
table name
group by
sm, date, dc
在外部查询中,您只需在正常条件下对每个不同的 s 求和 1,在特殊条件下对每个不同的 s 求和 2 (svb = 'S' AND sg = 'X8' AND p = 'N'),跨越您指定的内容(sm、日期、dc)
SELECT
sm,
date,
dc,
SUM(CASE
WHEN svb = 'S' AND sg = 'X8' AND p = 'N' THEN 2
ELSE 1
END) AS AdjustedCountS
FROM (
SELECT DISTINCT
sm,
date,
dc,
svb,
sg,
p,
s
FROM table_name
) AS distinct_values
GROUP BY
sm,
date,
dc