我有一个数据库,其中包含一个投诉表和提交日期.我要做的是,考虑到两个时期的开始和结束日期,我必须计算它们之间的增长百分比.
例如:
Q1(1月至3月)索赔= 200
Q2(4月 - 6月)索赔= 400
计算增长:
(现在 - 过去)/过去*100
增长百分比=(400-200)/ 200*100 = 100%增长
我必须从该报告中提取的信息在第一季度和第二季度之间增长了100%
这就是我想出的:
SELECT
(SELECT COUNT(id) FROM complaints WHERE submit_date >= start_date_period_1 AND submit_date <= end_date_period_1) AS q1_claims,
(SELECT COUNT(id) FROM complaints WHERE submit_date >= start_date_period_2 AND submit_date <= end_date_period_2) AS q2_claims,
(SELECT ((q2_claims - q1_claims)/q2_claims * 100) AS 'Percentage Growth')
FROM complaints;
Run Code Online (Sandbox Code Playgroud)
但不以正确的形式显示输出.它显示给定时期内每个日期的记录.我该如何修复查询?
在原始查询中,您混合了聚合(即COUNT)和非聚合列,强制MySQL为您提供包含每行记录的结果集.请尝试使用此查询:
SELECT
((q2.claims - q1.claims)/q2.claims * 100) AS 'Percentage Growth'
FROM
(SELECT COUNT(id) AS claims FROM complaints WHERE submit_date >= start_date_period_1 AND submit_date <= end_date_period_1) AS q1,
(SELECT COUNT(id) AS claims FROM complaints WHERE submit_date >= start_date_period_2 AND submit_date <= end_date_period_2) AS q2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1562 次 |
| 最近记录: |