在同一个sql查询中如何将2个查询值进行公式计算

求(currentMonth-upMonth)/upMonth*100%如何在一个sql中写出这个公式 并求出值 (本月的-上月的)/上月的UE%3E3HL]QC3X@H(Y[BPXL5.png

FineReport tangbao 发布于 2019-6-25 09:11 (编辑于 2019-6-25 09:12)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
虾米、木木Lv2初级互助
发布于2019-6-25 09:15(编辑于 2019-6-25 09:17)

使用case when

例子 

SELECT country,

       SUM( CASE WHEN sex = '1' THEN

                      population ELSE 0 END),  --男性人口

       SUM( CASE WHEN sex = '2' THEN

                      population ELSE 0 END)   --女性人口

FROM  Table_A

GROUP BY country;


  • tangbao tangbao(提问者) 我upMonth,currentMonth都是要查询得出的,怎么进行case when
    2019-06-25 09:25 
  • 虾米、木木 虾米、木木 回复 tangbao(提问者) 你是只要18年 12月的 还是所有的月份都要? 如果是只要 12月份的 就 sum(case when time between \'2018-11-01\' and \'2018-11-30\' then total else 0 end) as upMonth, sum(case when time between \'2018-12-01\' and \'2018-12-30\' then total else 0 end) as currentMonth 如果全要就用lag、lead函数
    2019-06-25 09:52 
最佳回答
0
影丶Lv5高级互助
发布于2019-6-25 09:26(编辑于 2019-6-25 09:28)
with t1 as 
(   
    --本月sql
),
t2 as (
    --上月sql
) 
select (本月-上月)/上月 from t1,t2

支持with as语法的就可以这么用,或者使用嵌套查询

select (本月-上月)/上月 
from (   
    --本月sql
) t1,
(
    --上月sql
) t2


最佳回答
0
doudekaixinLv6中级互助
发布于2019-6-25 10:06(编辑于 2019-6-25 10:09)

你是不是要实现这样的效果?

加入 2019-01 值为100

2019-02值为105

那你想要的值就是(105-100)/100*100%=5%?

如果是,你看下这个问题,和你的需求基本一致。

http://bbs.fanruan.com/wenda/question/10396.html


  • 4关注人数
  • 532浏览人数
  • 最后回答于:2019-6-25 10:09
    请选择关闭问题的原因
    确定 取消
    返回顶部