Oracle sql 计算分区上的不同值?
Oracle sql Count distinct value over partition by?
抱歉,我很困惑,无法正常工作。
我想显示每个项目相同价值的最大数量,
我的意思是:-
我有 70 个托盘的物品,物品 A
每个托盘都有一个独特的 tag_id
每个 tag_id 都有数量 (qty_on_hand)
大多数时候,这个 qty_on_hand 对于很多托盘都是一样的,所以对于我的 70 个托盘,我有
qty_on_hand 为 60 的 34 个标签
qty_on_hand 为 88 的 6 个标签
qty_on_hand 为 80
的 30 个标签
我要显示商品编号和数量最高的标签,
上面的例子是项目 A 34
但我需要为仓库中的数千件物品执行此操作。
我可以做一个简单的
select i.qty_on_hand,计数(qty_on_hand)
来自存货 i
其中 i.zone_1 = 'BULKSTORE'
和 sku_id = '1961834100'
按 qty_on_hand 分组
但它是针对 1 件商品 (sku_id) 的,然后这仍然告诉我在散装商店区域有 3 种不同的 quantities_on_hand 因为我只想要每个 sku 的最高价。
我看过 count distinct partition by etc, etc,
但无法让它工作,所以任何工作示例都会很棒。
希望我没有把你搞糊涂了。
提前致谢
院长
示例数据,所以我们在谈论同一件事,会有所帮助。
假设"item"被sku_id
识别,每个托盘都有一个唯一的tag_id
,它有一个sku_id
和一个qty
(数量) .而 table 被称为 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
;
会给你你所需要的。
抱歉,我很困惑,无法正常工作。
我想显示每个项目相同价值的最大数量,
我的意思是:- 我有 70 个托盘的物品,物品 A 每个托盘都有一个独特的 tag_id 每个 tag_id 都有数量 (qty_on_hand) 大多数时候,这个 qty_on_hand 对于很多托盘都是一样的,所以对于我的 70 个托盘,我有 qty_on_hand 为 60 的 34 个标签 qty_on_hand 为 88 的 6 个标签 qty_on_hand 为 80
的 30 个标签我要显示商品编号和数量最高的标签, 上面的例子是项目 A 34
但我需要为仓库中的数千件物品执行此操作。 我可以做一个简单的 select i.qty_on_hand,计数(qty_on_hand) 来自存货 i 其中 i.zone_1 = 'BULKSTORE' 和 sku_id = '1961834100' 按 qty_on_hand 分组 但它是针对 1 件商品 (sku_id) 的,然后这仍然告诉我在散装商店区域有 3 种不同的 quantities_on_hand 因为我只想要每个 sku 的最高价。
我看过 count distinct partition by etc, etc, 但无法让它工作,所以任何工作示例都会很棒。
希望我没有把你搞糊涂了。 提前致谢 院长
示例数据,所以我们在谈论同一件事,会有所帮助。
假设"item"被sku_id
识别,每个托盘都有一个唯一的tag_id
,它有一个sku_id
和一个qty
(数量) .而 table 被称为 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
;
会给你你所需要的。