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

如何查找article与type相同但date不同的数据库记录

筛选article与type相同但date不同的记录方案

嘿,这问题很常见,我给你两种实用的SQL解决思路,都能精准得到你想要的结果:

方法一:子查询关联法

先找出那些article和type组合下存在多个不同date的分组,再关联原表获取完整记录:

SELECT t.*
FROM your_table t
INNER JOIN (
    -- 先筛选出有至少两个不同date的article+type组合
    SELECT article, type
    FROM your_table
    GROUP BY article, type
    HAVING COUNT(DISTINCT date) > 1
) valid_groups 
ON t.article = valid_groups.article AND t.type = valid_groups.type;

方法二:窗口函数法

用窗口函数直接给每一行标记其所属分组的不同date数量,再筛选符合条件的行:

SELECT article, type, date
FROM (
    SELECT 
        *,
        -- 计算当前article+type组合下的不同date总数
        COUNT(DISTINCT date) OVER (PARTITION BY article, type) AS distinct_date_count
    FROM your_table
) filtered_rows
WHERE distinct_date_count > 1;

验证效果

用你提供的测试数据:

article type date
apple fruit 20180120
apple fruit 20180119
banana fruit 20180120
banana fruit 20180120

这两种方法都会返回:

apple fruit 20180120
apple fruit 20180119

完美符合你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:50:42