2017-10-12 196 views
0

對不起,但我很困惑,不能得到這個工作。Oracle sql通過分區統計不同的值?

我想表明,對於每個項目的值相同值的最高數量,

我的意思是: - 我有70個托盤的項目,項目A 每個托盤具有獨特的TAG_ID 每個tag_id都有一個數量(qty_on_hand) 大多數時候這個qty_on_hand對於很多托盤都是一樣的,所以對於我的70個托盤我有 34個標籤,qty_on_hand爲60 6個標籤,qty_on_hand爲88 qty_on_hand爲80的30個標籤

我想顯示項目編號和數量最高的標籤數量, 上面的例子將是項目A 34

但我需要爲倉庫中的成千上萬項目做到這一點。 我可以從庫存做一個簡單的 選擇i.qty_on_hand,計數(qty_on_hand) 我 其中i.zone_1 = 'BULKSTORE' 和sku_id = '1961834100' 組由qty_on_hand 但它的1項(sku_id)和那麼這仍然告訴我,在散裝商店中有3種不同的quantity_on_hand,因爲我只想要每個sku的最高數量。

我看了數等明顯的分區等等, ,但沒有能夠得到它的工作,所以任何工作的例子會很好。

希望我沒有把你搞糊塗太多。 在此先感謝 院長

+0

'zone'與問題有什麼關係?然後:計數**清楚**不可能幫助;你想數**相等**,這是一個不同的概念。 – mathguy

回答

0

示例數據,所以我們談論的是同樣的事情,會有所幫助。

假設「item」由sku_id標識,並且每個托盤具有唯一的tag_id,它具有sku_idqty(數量)。該表格被稱爲t

然後像

select sku_id, qty 
from ( 
     select sku_id, qty, 
        dense_rank() over (partition by sku_id order by count(*) desc) as drk 
     from  t 
     group by sku_id, qty 
     ) 
where drk = 1 
; 

會給你你所需要的。