首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算两个时期之间的增长率

计算两个时期之间的增长率
EN

Stack Overflow用户
提问于 2015-08-13 06:38:41
回答 1查看 2.5K关注 0票数 6

我有一个数据库,其中只有一个投诉表和提交日期。我要做的是,考虑到两个时期的开始和结束日期,我必须计算它们之间的增长百分比。

例如:

  • Q1 (1月至3月)索赔= 200
  • Q2 (4-6月)索赔= 400

要计算增长:

  • (现在-过去)/过去* 100
  • 增长率=(400-200)/ 200 * 100 = 100%增长

我必须从那份报告中提取的信息,即Q1和Q2之间的数据,已经增长了100%。

这就是我想出来的:

代码语言:javascript
复制
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;

但没有以正确的形式显示输出。它显示给定期间内每个日期的记录。如何修复查询?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-13 06:43:42

在最初的查询中,您将聚合(即COUNT)和非聚合列混合在一起,迫使MySQL为您提供一个包含每一行记录的结果集。请尝试使用此查询:

代码语言:javascript
复制
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
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31981133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档