SOS



uj5u.com熱心網友回復:
把lhq+ck+sfq的和做比較uj5u.com熱心網友回復:
能不能寫個例子 大佬 我還是個萌新 萬分感謝 sum可以的 但是 不會寫…
uj5u.com熱心網友回復:
case when lhp > lag(lhp) over(partition by name order by nd) or
lhp > lag(ck) over(partition by name order by nd) or
lhp > lag(sfq) over(partition by name order by nd)
then '增加'
else '' end
uj5u.com熱心網友回復:
出來了 萬分感謝 感謝
【2
uj5u.com熱心網友回復:
SELECT t.*,(SELECT DECODE(COUNT(0),0,'未增加','增加') FROM table_name tt WHERE tt.name = t.name AND tt.nd - 1 = t.nd AND (tt.lhq < t.lhq OR tt.ck < t.ck OR tt.sfq < t.sfq)) z
FROM table_name t ORDER BY t.name,t.nd ;
uj5u.com熱心網友回復:
謝謝 我也試了試你這個 好像出不來 …
uj5u.com熱心網友回復:
拋磚引玉吧,我覺得這個提問的重點是位置偏移函式的使用,lag,lead 還有一個比較復雜的我也沒記住 好幾個關鍵字的with t as
(select '小明' name, 0 lhq, 1 ck, 0 sfq, 2015 nd
from dual
union all
select '小明' name, 0 lhq, 1 ck, 0 sfq, 2016 nd
from dual
union all
select '小明' name, 1 lhq, 1 ck, 2 sfq, 2017 nd
from dual
union all
select '小明' name, 1 lhq, 2 ck, 1 sfq, 2018 nd
from dual
union all
select '小明' name, 3 lhq, 0 ck, 0 sfq, 2019 nd
from dual)
select m.*,
case
when lhq > lhq or ck > ck_next or sfq > sfq_next then
'增加'
else
'未增加'
end as flag
from (select name,
lhq,
lag(lhq) over(order by nd) lhq_next,
ck,
lag(ck) over(order by nd) ck_next,
sfq,
lag(sfq) over(order by nd) sfq_next,
nd
from t) m
uj5u.com熱心網友回復:
加索引name +nd
uj5u.com熱心網友回復:
分析函式、層次查詢、遞回with、model、自連接、標量子查詢、存盤程序都可以實作,考慮到效率,后三個不予考慮,考慮到簡易程度,分析函式是首選。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/48176.html
標籤:高級技術
