2017-10-12 195 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 
; 

会给你你所需要的。