将Tableau计算字段转换为SQL脚本 [已关闭]。

问题描述 投票:-2回答:2

需要帮助将Tableau中的计算字段转换为SQL语言。

Tableau字段是。

COUNTD(IF DATEDIFF('hour',[Created Date],[Closed Date])<24 then [Case Number] END)*100/COUNTD([Case Number])

需要转换为SQL语言 希望有人能帮忙

sql sql-server group-by count tableau
2个回答
0
投票
SELECT COUNT(DISTINCT CASE WHEN DATEDIFF(HOUR,[Created Date],[Closed Date]) < 24
                           THEN [Case Number]
                           ELSE NULL
                           END)*100/COUNT(DISTINCT [Case Number])

0
投票

假设案件编号从来没有 null,你可以用 avg():

avg(case when closed_date < dateadd(day, 1, created_date) then 100.0 else 0 end) 

否则,你需要更多的逻辑。

avg(case 
    when case_number is null then null
    when closed_date < dateadd(day, 1, created_date) then 100.0 
    else 0 
end) 

最后: 如果 COUNTD 意思是 "算得清清楚楚",而你确实有重复的案号,那么我们又回到了原来的除法技巧。

100.0
    * count(distinct case when closed_date < dateadd(day, 1, created_date) then case_number end)
    / count(distinct case_number)
© www.soinside.com 2019 - 2024. All rights reserved.