SQL - 客户满意度影响(需要子查询?)
SQL - Customer Satisfaction Impact (Subquery needed?)
我在尝试向我的 table 添加新列时遇到了一些 SQL 问题,我认为它依赖于子查询来工作。
下面我分享了 link 到 Google Sheet 以及一些示例数据来演示我正在努力实现的目标。
https://docs.google.com/spreadsheets/d/1qaWZg4BEs8xOxG3jNZwKRcaOGfMiMtCb15IU3FQ9W0o/edit?usp=sharing
我的基本布局是:
select
team_member,
language,
channel,
month,
sum(total_customers),
sum(happy_customers),
safe_divide(sum(happy_customers),sum(total_customers)) AS Satisfaction_Score
FROM
Table1
GROUP BY 1,2,3,4
我明白上面的内容会让我得到 team_member、语言、频道、月份每一行的满意度分数。我正在尝试在其末尾添加新列,这可能会让我:
- sum(total_customers) 按语言汇总
- Satisfaction_Score team_member
支持的语言
然后我可以用它来计算满意度影响,其布局如下:
(team member satisfaction score-language satisfaction score)*(team member total customers/language total customers)
遗憾的是我什至还没有接近答案,希望这里的向导可能知道如何完成?
您可以使用 window 函数:
select team_member, language, channel, month,
sum(total_customers), sum(happy_customers),
sum(sum(total_customers)) over (partition by team_member, language) as total_team_language,
safe_divide(sum(sum(happy_customers)) over (partition by team_member, language),
sum(total_customers)over (partition by team_member, language)
) AS Satisfaction_Score_team_language
FROM Table1
GROUP BY 1,2,3,4
我在尝试向我的 table 添加新列时遇到了一些 SQL 问题,我认为它依赖于子查询来工作。
下面我分享了 link 到 Google Sheet 以及一些示例数据来演示我正在努力实现的目标。 https://docs.google.com/spreadsheets/d/1qaWZg4BEs8xOxG3jNZwKRcaOGfMiMtCb15IU3FQ9W0o/edit?usp=sharing
我的基本布局是:
select
team_member,
language,
channel,
month,
sum(total_customers),
sum(happy_customers),
safe_divide(sum(happy_customers),sum(total_customers)) AS Satisfaction_Score
FROM
Table1
GROUP BY 1,2,3,4
我明白上面的内容会让我得到 team_member、语言、频道、月份每一行的满意度分数。我正在尝试在其末尾添加新列,这可能会让我:
- sum(total_customers) 按语言汇总
- Satisfaction_Score team_member 支持的语言
然后我可以用它来计算满意度影响,其布局如下:
(team member satisfaction score-language satisfaction score)*(team member total customers/language total customers)
遗憾的是我什至还没有接近答案,希望这里的向导可能知道如何完成?
您可以使用 window 函数:
select team_member, language, channel, month,
sum(total_customers), sum(happy_customers),
sum(sum(total_customers)) over (partition by team_member, language) as total_team_language,
safe_divide(sum(sum(happy_customers)) over (partition by team_member, language),
sum(total_customers)over (partition by team_member, language)
) AS Satisfaction_Score_team_language
FROM Table1
GROUP BY 1,2,3,4