将下面的Tableau计算字段转换为SQL

问题描述 投票:0回答:1

我正在尝试将下面的 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
sql data-analysis tableau-desktop
1个回答
0
投票

在外部查询中,您只需在正常条件下对每个不同的 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
© www.soinside.com 2019 - 2024. All rights reserved.