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

查询表中重复记录失败:SQL语句无返回结果的问题求解

问题分析与解决

错误原因

你写的SQL里,子查询加了where seller = buyer的条件,但你的所有数据中Seller都是abc,buyer都是xyz,没有任何一行满足seller = buyer,所以子查询返回空集合。外层的where cost in (...)没有可匹配的cost值,自然查不到任何结果。

另外,仅靠cost字段判断重复也不准确——如果存在不同的Seller或buyer但cost相同的记录,会被错误筛选出来。你的需求是筛选Seller、buyer、cost三者组合重复的记录,所以要基于这三个字段的组合来判断。

正确SQL写法

方法1:使用窗口函数(推荐,性能较好)

SELECT ID, Seller, buyer, cost
FROM (
    SELECT *,
           COUNT(*) OVER(PARTITION BY Seller, buyer, cost) AS repeat_count
    FROM Table_1
) temp
WHERE repeat_count >= 2;

方法2:使用关联子查询

SELECT t1.*
FROM Table_1 t1
INNER JOIN (
    SELECT Seller, buyer, cost
    FROM Table_1
    GROUP BY Seller, buyer, cost
    HAVING COUNT(*) >= 2
) t2 
ON t1.Seller = t2.Seller 
AND t1.buyer = t2.buyer 
AND t1.cost = t2.cost;

这两种写法都能准确筛选出你需要的重复记录,返回结果和你的期望一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:10:22