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

如何编写ClickHouse SQL检测同类别商品价格一致性?

数据异常检测需求与ClickHouse实现

数据示例

数据示例

规则说明

  • 第4、5行的C列值相同,且D列值也相同(符合要求)
  • 第6、7行的C列值相同,但D列值不同(不符合要求)

核心规则:
所有由A列和B列组成的唯一组合,若C列值相同,则D列值必须一致。换句话说,A列和B列共同定义一个商品,同一类别(C列)下的所有商品必须拥有相同的价格(D列),同类别商品价格不同则判定为异常。

需求详情

有4列数据,A列和B列构成唯一键。需要验证所有属于同一C列值的唯一键对应的D列值是否一致。即:由A列和B列的唯一组合定义的所有商品,若属于同一类别(C列),则价格(D列)必须相同。

ClickHouse SQL实现

方法1:查询所有违规记录

该语句会列出所有属于存在价格不一致类别的商品记录:

WITH category_price_check AS (
    SELECT 
        C,
        COUNT(DISTINCT D) AS distinct_price_count
    FROM your_table_name
    GROUP BY C
    HAVING distinct_price_count > 1
)
SELECT 
    t.A,
    t.B,
    t.C,
    t.D
FROM your_table_name t
JOIN category_price_check c ON t.C = c.C
ORDER BY t.C, t.D;

方法2:快速判断是否存在异常

该语句直接返回结果,1表示存在价格异常,0表示无异常:

SELECT 
    CASE 
        WHEN EXISTS (
            SELECT 1 
            FROM your_table_name
            GROUP BY C
            HAVING COUNT(DISTINCT D) > 1
        ) THEN 1
        ELSE 0
    END AS has_price_anomaly;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 22:54:58