我有一个包含以下字段的付款表:
我需要编写一个查询,以获取每天成功完成多少笔付款,失败完成多少笔以及退款多少笔以及当天的百分比。我当前的查询是这样:
select pdate, status, count(*) as total, sum(amount) as total_amount
from payments
group by pdate, status
查询成功返回每天处理了多少笔付款以及状态:
pdate status total total_amount
2019-04-01, successful, 10, 100
2019-04-01, failed, 5, 50
2019-04-01, refunded, 5, 50
2019-04-02, successful, 12, 120
2019-04-02, failed, 5, 50
2019-04-02, refunded, 3, 30
但是我不知道如何计算每天每一笔付款的百分比。例如,对于2019-04-01
,有20
笔付款,因此successful
笔付款的百分比= 50%
,failed
= 25%
和{{1 }} = refunded
。
我如何使其返回此值:
25%
如您所见,该百分比是根据每天的总付款次数计算得出的。
谢谢!
答案 0 :(得分:1)
您可以在select语句中使用子查询来完成此操作。请在下面参考:
INFO [main][ModuleFrameworkImpl:1636] Starting dynamic bundles
ERROR [Start Level: Equinox Container: 08ae8322-2575-4260-9c68-db4761a17500][org_apache_felix_scr:97] bundle org.apache.felix.scr:2.1.14 (34)Error while loading components of bundle com.liferay.portal.remote.soap.extender.impl:2.0.5 (555)
java.lang.ClassCastException: org.eclipse.osgi.internal.loader.FragmentLoader cannot be cast to org.eclipse.osgi.internal.loader.BundleLoader
这将为您提供所需的东西。查看以下运行示例: https://www.db-fiddle.com/f/e6a6CJb3pqLzcRz18SGeZ2/1