背景
净推荐分数是一种通过客户的眼睛衡量公司业绩的方法。我们的想法是,客户以“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查询,甚至可以不循环和执行多个查询?
答案 0 :(得分:1)
拥有该表可以在单个查询中获取它:
SELECT date, SUM(answer-1) * 100 / COUNT(answer) as NPS
FROM yourTable
GROUP BY date