oracle如何表示同比的简单介绍
用PLSQL查询Oracle数据库某字段的本年数,上年同期数,同比,怎么写啊???
很简单的,记得给分啊,不给分以后就不给你解答了,你到网上查询一下oracle有个叫lag的内置函数,把结果集排序以后通过lag函数取得相应的位移就知道你的同比和环比的结果了,我看你的结果集中是每月一条记录,则同比是位移12,环比是位移1。
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站制作、成都网站建设、石阡网络推广、小程序开发、石阡网络营销、石阡企业策划、石阡品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供石阡建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
生手求教oracle同比和环比sql语句
substr(t.salarymonth, -2)) "同比",
sum(t.salary) /
(select sum(t1.salary)
from D_MONTH_SALARY t1
where t1.salarymonth =
to_char(to_date(t.salarymonth, 'yyyymm') - 1, 'yyyymm')) "环比"
from D_MONTH_SALARY t
group by t.salarymonth;
请教Oracle计算同比和环比sql语句
首先明确概念:
环比增长率=(本期数-上期数)/上期数*100% 反映本期比上期增长了多少。
同比增长率=(本期数-同期数)/同期数*100% 指和去年同期相比较的增长率。
数据表名:d_temp_data
查询数据如下:
查询的sql语句如下:
select a.*,
nvl(round(money/lag(money) over(order by id)*100,2),'0')||'%' "同比",
nvl(round(money/lag(money) over(partition by mon order by id)*100,2),'0')||'%' "环比"
from d_temp_data a
id iname year mon money 同比 环比
----------------------------------------------------------------------
1 1 飞马股 2013 01 300 0% 0%
2 2 飞马股 2013 02 270 90% 0%
3 3 飞马股 2013 03 350 129.63% 0%
4 4 飞马股 2013 04 180 51.43% 0%
5 5 飞马股 2013 05 500 277.78% 0%
6 6 飞马股 2013 06 400 80% 0%
7 7 飞马股 2014 01 210 52.5% 70%
8 8 飞马股 2014 02 240 114.29% 88.89%
9 9 飞马股 2014 03 320 133.33% 91.43%
10 10 飞马股 2014 04 480 150% 266.67%
11 11 飞马股 2014 05 400 83.33% 80%
分享标题:oracle如何表示同比的简单介绍
文章来源:http://hbruida.cn/article/hhjgds.html