我有以下的sql查詢和di想要從表中獲取以前的最大值。從最大值得到前一個
select max(card_no),vehicle_number
FROM WBG.WBG_01_01
group by vehicle_number
通過這個查詢,我得到各個vehicle.But的每個最大卡號我想那max.For例如previouse
如果車輛數量有卡號21,19,17,10,5,6,1
,我想從19
max
函數
請別人告訴我如何在sql中執行此操作。
我有以下的sql查詢和di想要從表中獲取以前的最大值。從最大值得到前一個
select max(card_no),vehicle_number
FROM WBG.WBG_01_01
group by vehicle_number
通過這個查詢,我得到各個vehicle.But的每個最大卡號我想那max.For例如previouse
如果車輛數量有卡號21,19,17,10,5,6,1
,我想從19
max
函數
請別人告訴我如何在sql中執行此操作。
試試這個:
select max(card_no),vehicle_number
FROM WBG.WBG_01_01
where card_no < (Select max(card_no) from WBG.WBG_01_01 group by vehicle_number)
group by vehicle_number
這會選擇最大的'card_no',而不管它被分組的車號。我不認爲他在找什麼。 – doctorless 2012-03-13 05:04:01
好吧,我現在編輯好了嗎? – Shaheer 2012-03-13 05:11:43
親愛的ora-01427正在生成。因爲dnt作品 – 2012-03-13 07:03:39
另一個想法是使用的分析,這樣的事情:
select
vehicle_number,
prev_card_no
from (
select
card_no,
vehicle_number,
lag(card_no) over
(partition by vehicle_number order by card_no) as prev_card_no,
max(card_no) over
(partition by vehicle_number) as max_card_no
FROM WBG.WBG_01_01
)
where max_card_no = card_no;
當然,這並沒有考慮到從看似隨意訂購您的問題,也不會有重複的最大數量。
除非有一種已知的訂購方式,否則我不認爲你想要的是可能的。 「21,17,19,10,5,6,1」的順序如何確定? – ninesided 2012-03-13 05:02:38
@ninesided是什麼使它不可能? – Shaheer 2012-03-13 05:03:31
看起來你實際上是在尋找'19'還是顯然你在你的問題中缺少了一些東西... – 2012-03-13 05:27:22