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

Presto SQL:如何查找同一PK下Item1不同但Item2相同的记录

Presto SQL 筛选符合条件的记录方案

针对同一PK下存在多条记录,且Item1取值不同但Item2取值相同的筛选需求,自连接方式容易遗漏3条及以上符合条件的场景,以下两种方法可以解决这个问题:

方法一:分组聚合关联法

先按PK和Item2分组,统计每组内不同Item1的数量,筛选出数量≥2的分组,再关联原表获取完整记录:

WITH grouped_data AS (
    SELECT 
        PK,
        Item2,
        COUNT(DISTINCT Item1) AS distinct_item1_count
    FROM your_table  -- 替换为你的表名
    GROUP BY PK, Item2
    HAVING COUNT(DISTINCT Item1) >= 2
)
SELECT t.*
FROM your_table t
JOIN grouped_data gd ON t.PK = gd.PK AND t.Item2 = gd.Item2;

方法二:窗口函数筛选法

使用窗口函数直接在原表中计算每个PK+Item2分组下不同Item1的数量,再筛选符合条件的记录:

SELECT *
FROM (
    SELECT 
        *,
        COUNT(DISTINCT Item1) OVER (PARTITION BY PK, Item2) AS distinct_item1_count
    FROM your_table  -- 替换为你的表名
) sub_query
WHERE distinct_item1_count >= 2;

这两种方法都会把同一PK下,只要存在至少两个不同Item1但Item2相同的所有相关记录全部筛选出来,不管是2条还是3条及以上的情况,避免了自连接的局限性。

内容的提问来源于stack exchange,提问作者Imase Itachi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:07:11