首先對當月資料進行統計,group by 對不統計字段分組,然後sum統計數值
select
`tjyf`, `gddwbm`,`yhbh`,
sum(`byydl`) byydl, --------統計資料
sum(`bydf`) bydf --------
from
`tm_yx_khtz_ydtjfx`
where `yhbh` =
(select
yhbh
from
`tm_yx_khtz_jbxx`
where yhmc = '李四')
and (
tjyf = '201002'
or `tjyf` = date_format(
date_sub(concat('201002', '01'), interval 1 year), --------這裡是往前一年
'%y%m'
) or `tjyf` = date_format(
date_sub(concat('201002', '01'), interval 1 month), --------這裡是往前乙個月
'%y%m'))
group by
`tjyf`,
`gddwbm`,
`yhbh` --------對不統計字段進行分組操作
然後把上面字段作為子查詢,進行 列轉行 操作,貼出兩個核心sql,把行相當於做迴圈,用判斷把列資料轉為行
sum(
case
r.tjyf
when 201002 -----------------這裡判斷時間是否是本月
then r.byydl -----------------符合條件,放置資料
else null -----------------不然置空
end) current_byydl,
sum(
case
r.tjyf
when date_format(
date_sub(
str_to_date('20100201', '%y%m%d'),
interval 1 year -----------------這裡判斷時間是否是減去一年的
),'%y%m'
)then r.bydf -----------------符合條件,放置資料
else null -----------------不然置空
end)
最後就把資料進行計算即可,然後丟給前台做處理
((s.current_byydl - s.ring_byydl) / s.ring_byydl) * 100 ring_byydl_rate,
((s.current_byydl - s.same_byydl) / s.same_byydl) * 100 same_byydl_rate,
同比 ,(今年值 - 去年值) / 去年值 * 100%
環比 ,(今年之 - 上月值) / 上月值 * 100%
5 4 2 1 SSAS 建立計算 同環比
建立計算 同環比 1 計算當期 上期 同期成員值 1.1 新建計算 1.2 輸入計算成員名 1.3 輸入表示式如下 當期 date 年 月 日 currentmember measures pay amount 上期 date 年 月 日 currentmember.prevmember measu...
Hive計算絕對值同環比
什麼是絕對值同比 什麼是絕對值環比 資料集準備 同比計算 環比計算 本期資料 同期資料 同期資料 例 2021年1月1日的gmv 2020年1月1日的gmv 2020年1月1日的gmv 本期資料 上期資料 上期資料 例 2021年2月2日的gmv 2020年2月1日的gmv 2020年2月1日的gm...
儲存過程裡面使用in變數列表異常的處理
在寫乙個儲存過程的時候,由於需要用到類似 select id,name from tablename where id in id1,id2,id3.的查詢語句,同時括號裡面的變數是拼接得到的,當時沒有多想,直接將儲存過程寫成類似select id,name from tablename where...