You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Hive SQL筛选共享两个及以上销售位置的产品

Hive SQL实现共享两个及以上销售位置的产品筛选

原始表结构与数据

PRODUCTPosition
A1, 2, 3
B2
C7,8,9, 10
D2,3,4
E7,8,9

实现步骤与SQL代码

1. 拆分位置字符串为单行记录

先把每个产品的逗号分隔位置拆成独立行,方便后续统计共享位置:

WITH exploded_positions AS (
    SELECT 
        product,
        trim(pos) AS position
    FROM 
        your_table_name
    LATERAL VIEW explode(split(position, ',')) pos_table AS pos
)

2. 匹配产品对并统计共享位置数

通过自连接找出所有产品对,统计它们共同拥有的位置数量,同时排除自身匹配和重复产品对(比如A-D和D-A视为同一组):

, product_pair_shared AS (
    SELECT 
        ep1.product AS prod1,
        ep2.product AS prod2,
        COUNT(DISTINCT ep1.position) AS shared_count
    FROM 
        exploded_positions ep1
    JOIN 
        exploded_positions ep2 ON ep1.position = ep2.position AND ep1.product < ep2.product
    GROUP BY 
        ep1.product, ep2.product
    HAVING 
        shared_count >= 2
)

3. 拼接产品对为预期格式

最后把符合条件的产品对用逗号拼接,得到目标结果:

SELECT 
    concat(prod1, ',', prod2) AS matched_products
FROM 
    product_pair_shared;

最终输出结果

A,D
C,E

内容的提问来源于stack exchange,提问作者Quang Minh Vu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 11:19:54