首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算特定时间段的净推广者得分

计算特定时间段的净推广者得分
EN

Stack Overflow用户
提问于 2017-10-31 08:06:54
回答 1查看 407关注 0票数 0

我需要转换数据,这样它才能进入我的BI软件。我在互联网上找到了下面的查询来计算Net Promoter Score (NPS),但是有一个问题-它计算了所有的数据,忽略了WHERE语句,其中我试图指定年份和月份。这意味着,它接受所有年份的所有行,并输出对它们的计算。

代码语言:javascript
复制
SELECT NPS_Deployment_Type
     , CAST(((SUM(CASE WHEN NPSRating BETWEEN 9 AND 10 THEN 1 ELSE 0 END) * 1.0 -
SUM(CASE WHEN NPSRating BETWEEN 0 AND 6 THEN 1 ELSE 0 END)) / COUNT(*) * 100) AS signed) NPS
     , count(*) as 'SR'
  from g360_relationship_survey_extract 
 where year(Survey_Response_Created_Date) = '2017' 
  AND month(Survey_Response_Created_Date) >= '10' 
 GROUP 
    BY NPS_Deployment_Type

注意: Net Promoter系统是客户体验调查,它提出的问题的评分范围从0到10 (含)。计算方法为:((回复10或9的人数)/all回复-(回复0-6的人数)/all回复)* 100

EN

回答 1

Stack Overflow用户

发布于 2017-10-31 09:18:00

几件事。

首先,使用

代码语言:javascript
复制
 WHERE Survey_Response_Created_Date >= '2017-10-01'
   AND Survey_Response_Created_Date <  '2017-11-01'

以在2017年10月获得所有回复。它可以利用列上的索引。

其次,为了确保您理解数据,请尝试首先执行详细信息子查询,然后对其进行汇总。例如,首先获取细节(如果这样比CASE更容易使用):

代码语言:javascript
复制
           SELECT Survey_Response_Created_Date,
                  NPS_Deployment_Type,
                  IF(NPSRating BETWEEN 0 AND 10, 1,0) AS total,
                  IF(NPSRating BETWEEN 9 AND 10, 1,0) AS positive,
                  IF(NPSRating BETWEEN 0 AND  6, 1,0) AS negative
             FROM table

然后在外部查询中对它们进行汇总

代码语言:javascript
复制
  SELECT (100 * SUM(positive) - SUM(negative))/SUM(total) AS nps,
         SUM(total) AS responses,
         LAST_DAY(Survey_Response_Created_Date) month_ending,
         NPS_Deployment_Type
    FROM (
           SELECT Survey_Response_Created_Date,
                  NPS_Deployment_Type,
                  IF(NPSRating BETWEEN 0 AND 10, 1,0) AS total,
                  IF(NPSRating BETWEEN 9 AND 10, 1,0) AS positive,
                  IF(NPSRating BETWEEN 0 AND  6, 1,0) AS negative
             FROM table
         ) detail
   WHERE Survey_Response_Created_Date >= '2017-10-01'
     AND Survey_Response_Created_Date <  '2017-11-01'
   GROUP BY LAST_DAY(Survey_Response_Created_Date, NPS_Deployment_Type

这样做的好处是,在您尝试汇总之前,可以很容易地验证您的单个调查答复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47026031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档