用于计算净推荐分数的SQL查询

时间:2011-12-03 14:37:56

标签: mysql sql graph

背景

净推荐分数是一种通过客户的眼睛衡量公司业绩的方法。我们的想法是,客户以“0到10的等级”的形式回答“您向朋友或同事推荐X的可能性有多大?”的问题。然后将答案分为三类:批评者(0-6),被动者(7-8)和推动者(9-10)。 NPS可以在-100和+100之间变化,并且计算如下:

NPS = (% of promoters) - (% of detractors)

(资料来源:http://www.netpromoter.com/np/calculate.jsp

问题:

我需要随着时间的推移绘制NPS,理想情况下,如果这可以通过纯SQL实现。现在我有点困难,需要帮助。

让我们把它煮沸,省略所有连接和其他相关的人口统计数据到下面的内容。我不认为我需要跟踪确切的答案,所以让我们假设我将答案存储在这个表格中:

answer     date
0          2011-11-28
1          2011-11-30
2          2011-12-02

其中0 =减法器,1 =被动,2 =启动器。

根据这些信息,我想想象一下NPS值随着时间的推移,比如按日期分组。我怎么能设计这样的(My)SQL查询,甚至可以不循环和执行多个查询?

1 个答案:

答案 0 :(得分:1)

拥有该表可以在单个查询中获取它:

SELECT date, SUM(answer-1) * 100 / COUNT(answer) as NPS
FROM yourTable
GROUP BY date