mysql - MySQL 显示比例
问题描述
我试图显示一部分客户因为他/她被其他客户和没有推荐的客户推荐而注册。到目前为止,我只能将其显示为数字,但我想以百分比显示。Null 是指客户在没有被推荐的情况下注册。
原始数据如下:
CustomerID ReferralID
1000004 1000003
1000015 1000010
1000007 1000004
1000011 Null
1000026 1000004
我拥有的查询并返回数据如下:
select customerID, COUNT(*) as proportion
from company123.customertable
group by (customerID)
order by customerID asc;
CustomerID proportion
1000004 1
1000015 1
1000007 1
1000011 1
1000026 1
预期结果
CustomerID referred non-referred
1000004 1 0
1000015 1 0
1000007 1 0
1000011 0 1
1000026 1 0
任何建议将其显示为百分比?先感谢您
解决方案
您可以在这样的案例语句中使用聚合函数
SELECT
COUNT(*) customers,
SUM(CASE WHEN referral_id IS NOT NULL THEN 1 ELSE 0 END) / COUNT(*) AS referred,
SUM(CASE WHEN referral_id IS NULL THEN 1 ELSE 0 END) / COUNT(*) AS non_referred
FROM company123.customertable
应该给你这样的东西(数字是组成的)
customers referred non_referred
12301 0.7128 0.2872
推荐阅读
- javascript - Amcharts V4 如何在不重新加载整个图表的情况下更改数据?
- android-studio - 在 Android Studio 中计算 CMake 服务器结果时出错
- r - 使用二进制图像在 R 中发布请求
- python - 如何使用 psycopg2.sql 将列列表或 *(所有列)传递给动态 SQL 查询
- python - 如何在 python 中进行这种集成:when y(t)=integrate[f(t,y)]
- javascript - Javascript:使用用户输入创建表的任何更好的解决方案?
- javascript - fullCalendar 中检索源的问题
- ansible - 使用 nohup 时,ansible shell 不会创建 nohup.out
- ansible - 如何用 ansible tower 安装 PHP7.2?
- excel - VBA中浮动按钮的问题 - 出现错误